멘토링 내용
두번째 멘토링을 진행하였다. 두번째 시간도 자바의 신을 학습 후 해당 키워드에 대한 내용을 문답형태로 진행하였다.
자바의 신 1권 기준 11장부터 전체 내용을 다뤘고 내가 준비한 답변 리스트를 먼저 질문하고 멘토링이 답변을 듣고 꼬리질문 형식으로 진행이 되었다.
다음과 같은 키워드로 진행하였으며, 1주차에서 찾아보라고 해주신 내용과 자바의 신 전반에 내용이 키워드화하여 폭 넓게 진행되었다.
- 객체, 인스턴스, 클래스
- 객체지향 프로그래밍
- 자바 7버전과 8버전의 메모리 구조 변화
- GC
- 불변객체
- String, StringBuilder, StringBuffer
- Java 컴파일 과정
- 동일성과 동일성
- equals()와 hashCode()
이번주에 경우 내가 이력서를 늦게 전달해줘서, 이력서에 대한 내용은 다음 주에 진행될 예정이다.
코칭 내용
질문에 대한 답변은 대체로 잘 준비가 되셨다고 하셨다. 앞으로도 이 수준을 준수해서 준비를 해보라고 하셨다.
그리고 객체지향 프로그래밍에 대해 설명하는 것에 대해 제일 긴 시간으로 코칭해주셨는데, 이거에 대한 답변을 준비해보라고 하셨을 때도 SOLID나 객체지향 4가지 특성 등 이런 개념에 얽매이지 않는 답변을 만들어보라고 하셨다.
그래서 객체지향에서 객체의 역할, 책임, 협력에 초점에 맞춘 설명과 절차지향 프로그래밍과의 비교를 통한 답변을 준비했다. 왜냐하면 전 회사에선 자바를 사용했지만 절차지향 적 코드를 위주로 작성했기 때문에 그것에 대한 문제점을 잘 알고 있어서 해당 방식으로 답변하였다.
답변에는 문제가 없으나, 기본적으로 객체지향 SOLID나 특성이 본질적으로 어떤걸 위한 것임을 알아야 된다고 하셨고, 그것을 코드에 적용할 수 있는 개발자가 될 수 있어야 한다고 하셨다.
본질적으로 객체지향은 개발에 있어 뭘 하나를 고쳤을 때 다른 데 전파를 덜 하고, 딱 그 부분 수정함으로 변경이 이루어지기 위한 마음에서 나온 원칙이라고 하였다.
메서드 하나를 고치면, 다른 메서드에 영향을 미치지 않고 그러한 과정이 잘 이루어지면 테스트도 용이해지면서 전체적인 코드의 안정성이 올라가는 그런 코드를 항상 생각하면서 진행하라고 하셨다.
그런걸 머리 속에 넣고 SOLID와 객체지향의 특성을 공부하면 더 좋을 것 같다고 하셨다.
그 외에도 질문 꼬리내용으로 다음과 같은 주제를 알려주셨다.
- 해시에 대해 정리하고 해시테이블, 해시 충돌 개념 등을 탐구
- 플러스(+) 연산자와 StringBuilder의 차이점을 조사 (자바 버전 별 차이가 있으니 그것도 확인)
- GC에서 G1과 같은 레벨의 GC들 확인
회고 및 이번 주차 학습 계획
2주차 때는 사실 개인일정 때문에 학습 시간이 길지 않아 내용을 학습한다는 느낌보단 질문에 답변을 만드는 식으로 진행하였다. 이번주에는 학습에 시간을 더 할당해야되고, 요즘 스톰워치로 실 학습 시간을 재면서하고 있는데 평균 5시간 정도밖에 집중을 못하는 것 같다.
일을 다니면서 한다면 충분한 시간이지만, 일을 안다고 이직 준비 중이라 최소 8시간을 학습 집중을 목표로 해야될 것 같다.
이번 주 학습계획
- BFS, DFS 코딩테스트 1문제 풀이 및 정리
- 자바의 신 1권에서 못한 내용 정리
- 자바의 신 2권 완독 및 키워드 정리
- 객체지향의 사실과 오해 책을 읽고 내가 정리한 객체지향 답변과 비교해보기
- 기업 정리 후 이력서를 넣을 준비하기
기본적으로 자바의 신에 대한 학습은 이번주를 끝으로 마무리 짓고 싶다. 물론 스레드나 동시성에 대한 내용은 마무리 못할 것 같아 그것에 대한 기본 개념을 우선 학습을 이번주 목표로 하고 깊이있는 학습은 다음 주차에 진행을 해야될 것 같다.
'프로젝트&부트캠프 > f-lab 백엔드 멘토링 과정' 카테고리의 다른 글
[F-lab] 벡엔드 멘토링 1주차 정리 (0) | 2025.01.16 |
---|