객체지향 프로그래밍
- 코드의 재사용성 용이
- 유지보수가 쉬움
- 대형 프로젝트에 적합
but
1. 처리 속도가 상대적으로 느림
2. 객체가 많으면 용량이 커질 수 있음
3. 설계시 많은 시간과 노력이 필요
객체지향 프로그래밍 키워드 5개
- 클래스와 인스턴스(객체)
- 어떤 문제를 해결하기 위한 속성이 비슷한 데이터들을 모아놓은 변수와 메서드(메서드는 비슷한 속성의 변수를 다룸)
- 추상화 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것
- 캡슐화 : 접근 제어자를 통한 정보 보호(은닉)이 가장 중요. 코드를 재수정 없이 재활용 하는 것
- 상속 : 부모클래스와 자식클래스로 설명하다보니 상하개념을 많이 떠올리는데 상하개념보다는 확장에 가까움. 부모클래스의 속성과 기능을 자녀클래스는 그대로 사용할 수 있다.
- 다형성 : 하나의 변수명으로 상황에 따라 다른 의미로 해석이 가능. (오버라이딩, 오버로딩)
- 오버라이딩 : 부모클래스의 매서드(함수)와 같은 이름, 매개변수를 재정의하여 다르게 사용하는것
- 오버로딩: 같은 이름의 함수를 여러개 정의하고 매개변수의 타입을 다르게하고 매개변수에 따라 다르게 호출할 수 있게 하는 것
getter와 setter를 사용하는 이유
- 캡슐화에서 보호하는 정보를 관리하기 위해서이다. getter와 setter를 사용하면 매서드를 통해서 접근하기 때문에 매서드 안에서 매개변수같이 어떤 올바르지 않은 정보 입력으로 함부로 수정되거나 삭제되지 않도록 하기 위함이다.
객체지향 관련 내용
JPA
JPA는 객체지향언어와 관계형 데이터베이스의 패러다임 불일치를 해결하기 위해 나온 기술.
1. 쿼리 자동으로 구현
2. sql의존성을 줄여 번거로운 작업이 매우 단축됨
3. 패러다임의 불일치를 해결해줌(핵심)
Spring Data JPA 구현방법에 대한 공식문서
JPA공식문서
나의 일주일 회고하기
어려웠던 점
- 체력 : 오티주차에 토이프로젝트를 두개나하고 자바 기초언어를 2주만에 끝내야하는 상황에서 시간에 쫓기듯 살았다. 심지어 그 중간에는 코딩테스트도 있고 제출해야하는 과제도 있었다. 체력관리와 컨디션 조절이 힘든 주간이었다. 기본언어를 미리 공부했거나 전공자들을 따라가기에 너무 벅찬 주간이었다.
- 공부 방향성 : 주어진 일이 너무 많다보니 우선순위를 정하기 못하고 버벅대는 일이 많았다. 밀려오는 것들을 많은데 무엇부터 해결해가야할지 여전히 너무 막막한 순간들의 연속이었다.
어떻게 해결했나
- 운동 : 체력을 키우기 위해 아침에 30분동안 운동을 하기 시작했다. 무리하지 않고 조금씩 늘려가는 것을 목표로 했다. 특히 오래 앉아있다보니 허리가 아팠다. 폼롤러로 스트레칭을 하고 핫팩으로 찜질을 하며 통증을 줄여가기로 했다.
- 내가 가장 빠르게 할 수 있는 것들부터 해나가기 : 일단 모든 것을 끝낸다는 욕심을 접어두고 내가 가장 빠르고 쉽게 할 수 있다고 생각되는 것부터 해나가기 시작했다.
- 자바의 정석 유튜브 강의 보기 (객체지향부분은 2회독)
- 세션 강의 들은 내용 복습하기
- 혼자서 class만들어 보기
- 버스와 택시 구현해보기 (개인 SA과제)
느낀점
금요일에는 버스 객체를 만들기 위해 혼자 책을 찾아가면 끙끙거리던 내가 일요일에는 페어 프로그래밍으로 다른 사람과 함께 간단한 택시 운영을 구현해보고 있는 것을 돌이켜보니 뭔가 기분이 묘했다. 항상 제자리 걸음이라고 생각했는데 끊임없이 지식을 넣다보니 조금씩 점으로 정리되어있는 지식들이 옹기종기 모여들어 자리를 잡아가는 기분이었다.

객체 하나 만드는데까지 두시간 걸렸던 내가 택시 시가의 수익을 계산해줄 수 있는 프로그램을 짤 수 있게 되다니. 좀 더 고민해서 이동거리에 따른 연료 소비량과 그에 따라 알람이 뜨고 충전하게 하는 것을 추가해볼 생각이다. 또한 손님이 타면 "운행중"으로 상태를 변경하고 손님이 내리면 "빈차"라고 알람을 띄우는 기능도 구현해보려고 한다.
무한한 인터넷. 정보의 바다. 망망대해. 막막하지만 조금씩 알아갈때마다 가슴 벅차기도 하다. 공부하는 것이 조금 즐거워졌다.
다음주 목표
- 운동 30분씩 4번 이상하기 (체력관리)
- 스프링 개인과제와 조별과제 기한 맞춰서 제출하기
- 찾아본 자료들 그냥 보고 넘기지 말고 스프레드 시트에 정리해두기
- 공부한 내용 사소한거라도 깃허브에 커밋푸쉬하는 연습하기