본문 바로가기

분류 전체보기

(87)
객체지향 프로그래밍(2) - 다형성 다형성 개념은 클래스와 인터페이스를 활용함에 있어서 가장 중요한 핵심 개념이므로 자세히 알아두어야할 필요가 있다. 다형성(polymorphism) 이란? 여러 가지 형태를 가질 수 있는 능력을 말한다. Java에서는 조상 타입의 참조 변수로 자손타입의 객체를 다루는 것을 말한다. Tv ctv = new CaptionTv(); // 부모 클래스의 타입 = 인스턴스 타입 부모 타입의 참조변수로 자손타입의 객체를 담아 사용하면 어떤 차이가 발생할까? 사용할 수 있는 멤버의 갯수가 제한되게 된다. 상속의 개념을 토대로 설명할 수 있다. 자손 클래스는 부모 클래스를 담아 이전보다 확장된 범위를 가지게 된다. 부모의 멤버
객체지향 프로그래밍(2) - 접근 제어자 제어자(modifier) 란? 클래스, 변수, 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 하나의 대상에 여러 제어자를 같이 사용 가능하다. (접근 제어자 제외) 순서는 상관 없으나, 주로 접근 제어자를 제일 왼쪽에 선언한다. public static void main(String[] args) {} 일반 제어자 static - 클래스의, 공통적인 메서드, 멤버변수, 초기화 블럭에 사용이 가능하다. 클래스 관련의 것들은 static 제어자를 붙인다. final - 마지막의, 변경될 수 없는 클래스, 메서드, 멤버변수, 지역변수에 사용이 가능하다. 생성자를 이용하여 final 멤버변수를 초기화할 수 있다. abstract - 추상의, 미완성의 접근 제어자(access modifier) 접근 ..
항해99 - 2주차 WIL 미니 프로젝트 후 정신없이 하루하루를 보내다보니 어느덧 항해 2주차를 마무리하게 되었다. 한 주를 돌아보면서 정리하는 글을 작성하고자 한다. 2주차는 내가 선택한 주특기의 기초언어를 학습하는 주로, Spring의 베이스가 되는 자바에 대한 학습을 진행했다. 이번 주에는 Java 작동원리, 조건문과 반복문, 배열, 객체지향에 대한 학습을 진행했다. 그동안 학습해왔던 내용이기 때문에 비교적 쉽게쉽게 과제를 해결할 수 있었다. 시간적 여유가 남는 관계로 잘 정리가 되지 않았던 기본형 타입과 다차원 배열에 대해서 집중적으로 공부했다. 좋았던 점 얼떨결에 팀장이 되었는데, 팀워크를 이끌어내기위해 팀원들에게 적극적으로 의견을 물었다. 내가 머릿 속으로만 알고있는 내용들을 팀원들에게 설명해주는 것도 개념을 정리하는데..
항해 99 - 2023.01.20 TIL 3일차부터 대망의 객체지향 파트가 시작되었다. 그 동안 집중적으로 공부해왔던 파트이기 때문에 나름 개념이 정리된 상태라 안심되었다. 머릿 속에만 가지고 있는 것과 말로 풀어서 설명하는 것은 다르기 때문에, 팀원들이 헷갈려하거나 모르는 개념에 대해서 적극적으로 나서서 설명하고자 노력했다. 3일차 문제까지 2일차에 미리 풀이를 끝낸 상태라, 그 동안 못나갔던 자바의 정석 진도를 나가고, 프로그래머스 문제 풀이를 진행했다. 어제부터 Spring 주특기반 자체적으로 알고리즘 챌린지를 시작했다. 매일 프로그래머스 0단계 문제를 풀고 발표하는데, 발표자가 다음 사람을 지목하는 식으로 진행했다. 오늘은 내가 발표를 진행하게 되었다. 그런데, 발표할 문제의 답안을 Class파일로 작성하고 GitHub에 PR하는 과정에..
항해 99 - 2023.01.19 TIL 주특기 입문 주 2일차이다. 2일차는 Java 기초문법에 대해 학습했는데, Keyword는 조건문과 반복문, 배열이다. 그동안 크게 어렵다고 느끼지 않았던 Part여서 수월하게 진행할 수 있었다. 3일차까지 개념을 미리 훑어보고 연습문제도 미리 풀어놓았다. 오늘 연습문제를 풀면서 막혔던 부분이나 깨달았던 점에 대해서 회고해보고자 한다. 실수형 소수점 자리 계산 계산된 총점의 평균을 구하고 소수점 둘째 자리까지만 반올림 하도록 처리하는 문제였는데, 원하는 값을 산출하는게 어렵고 이해가 되지 않았다. (int)(getTotal() / 3f * 10 + 0.5) / 10f; Math.round(getTotal()/3f*10)/10f; 리턴 타입이 float로 제한되어 있기 때문에 위와 같은 답을 낼 수 있다...
항해 99 - 2023.01.18 TIL 주특기 입문 주가 시작되었다. 내가 선택한 주특기는 Spring 이기 때문에, Java 기초를 공부하게 되었다. 주 교재 내용이 자바의 정석으로 진행된 관계로, 기존에 학습했던 내용에서 확실히 알고 넘어가지 못했던 부분을 중점적으로 공부하는 방식으로 진행해야겠다. 1일차 학습 주제는 Java 환경셋팅, JVM, 변수, 연산자이다. 1일차를 학습하면서 새롭게 알게되었던 내용을 회고해보고자 한다. 인텔리J 그동안 자바 공부에 사용했던 IDE(통합 개발 환경)는 Eclipse 였는데, 항해 측에서 인텔리J 유료버전을 4개월간 무료로 제공해주었다. 기존에 사용했던 JDK를 삭제하고, 항해99의 자바 셋팅 가이드를 따라 Julu JDK 를 설치했다. 시중에는 OpenJDK가 나와있는데, 아직까진 각 JDK에 대한..
항해 99 - 2023.01.16 TIL 지난 주에 무사히 토이 프로젝트를 끝마치고, 이번 주에는 대망의 풀스택 미니 프로젝트를 하게 되었다. 총괄매니저님께서 경고?하셨듯이 하루만에(익일 06:00까지 제출) 미니 프로젝트를 완성해야만 하기에 시간이 빠듯했다. 나는 6조에 배정되었는데, 지난 번 토이 프로젝트를 함께했던 팀원 한 명이 있어서 무척이나 반가웠다. 시간이 촉박한 관계로 거창한 기능보다는 기본에 충실한 CRUD 기능을 기반으로 한 애플리케이션을 만들어보고자 했다. 프로젝트 명은 Daily Note로, 달력 형식의 메인 화면에 날짜를 클릭하여 일정이나 메모를 추가하는 기능을 구현했다. 각 페이지 화면을 상상하여 스케치해보고, 어떤 기능을 추가해야하는지 분류했다. 1. CRUD 관련 - 날짜를 누르면 해당 날짜의 데이터를 전부 읽어와 화..
항해 99 - 2023.01.12 TIL 오늘은 토이 프로젝트 마감일이다. 다행스럽게도 시간 내에 작업을 마치고 프로젝트를 완성할 수 있었다. 우리 조의 프로젝트명은 'Bookmark Saver'로 인터넷 페이지의 URL을 저장하여 한 페이지에서 확인할 수 있고, 카테고리 별로 정리할 수 있도록 만들었다. 내가 담당한 부분은 로그인 처리 백엔드 파트였는데, 초반에 세팅 문제로 많이 헤매게 되어 기본적인 로그인 기능 구현은 프론트엔드 파트를 담당하신 팀원 분이 대신 구현해주셨다.. 나는 주로 로그인 부분에서 보안성을 강화하는 작업을 진행하게 되었다. index 로그인 페이지 내가 담당한 부분으로, 회원가입 시 패스워드가 암호화 처리되어 db에 들어가도록 하였다. 또한, jwt 토큰을 사용하여 id 값을 저장하고, 토큰을 Cookie에 담아 필요할..