회고록 목록입니다.
[회고, f-lab] 1, 2주차 회고, 좋은 멘티 & 멘토, 정보 공유 커뮤니티의 존재.
[회고, f-lab] 3, 4주차 회고. 매주 QnA, 토론 with 멘티, 멘토. 성장.
1. 3주차 회고
멘토링질문의 80-90퍼센트는 자신있게 답변한듯하고 10-20퍼센트는 잘모른다고 답변을 했네요. 1,2주차에 비해 학습 방향성을 제대로 짚고 있다는 느낌이 듭니다. 점점 답변할 수 있는 질문도 많아지고, 꼬리 질문도 많이 답변할 수 있었습니다. 질-답 & 토론형 멘토링으로 생각하는 방식이 긍정적인 방향으로 바뀐게 현재 상태가 될 수 있었던 가장 큰 이유가 아닐까 싶습니다.
오늘은 멘토님께 현재 멘티들의 학습했던 & 학습 중인 컨텐츠를 공유하기도 했습니다.
제 컨텐츠
운영체제: Deadlock에서 학습 중지
네트워크: OSI 7계층 학습 후, HTTP 학습중
코딩 테스트: 하루 3-4시간
언어: 자바 공부
DB: 오라클 데이터베이스 하루 1시간
멘티 컨텐츠
운영체제: 반효경 교수님 강의 학습
네트워크: HTTP등 웹지식 강의로 학습함.
코딩 테스트: 책으로 공부중 but 학습 방법은 고민중
언어: 자바 공부, 스프링 공부(언어로 묶을께요)
DB: Mysql 하루 1시간
멘토님 조언: 운영체제는 cs 과목이니 좋지만 현재는 자바와 스프링에 비중을 두면 좋다. 운영체제는 좋긴 하지만 범위가 넓다. 보면 좋다 안좋다고 판단하기 어렵다고 하셨습니다. DB는 현재 공부해두면 좋다고 하셨습니다.
F-lab이 좋은 점은 기초가 있으면서도 배움의 의지가 강한 분들이 많다라고 할 수 있을 것 같습니다. 우선 제 멘티분만 해도 공부량도 많으시고, 공부한 컨텐츠의 quality 또한 좋습니다. 실제로 멘토링 전날 두명이서 3-4시간 질&답 + 토론을 하는데 배울점이 많습니다.(논외로 이런 방식이 공부할 때 보지 못한 부분까지 서로 짚어줘서 아주 좋았습니다.) 면접이 질&답 형식으로 진행되는 걸 생각하면, 사실상 매주 면접 준비를 한다고 생각할 수 있습니다. 다음주까지 다시 달려봐야겠군요. 아래는 멘토->멘티, 멘티->멘토 질문 목록입니다.
멘토→멘티 질문 목록
이러한 느낌이다만 봐주세요. 아래 질문들이 답안이 되면 안됩니다. 아래 질문이 나오게 되는 사고 과정을 익히는게 중요합니다. 답안지를 가지고 공부하시면 성장할 수 없습니다.
- Equals, Hashcode 메서드가 어떻게 사용되는지 비교해주세요.
- Hashmap에서 위 두가지가 어떻게 쓰이나요?
- String에서 Hashcode 생성 하는 것을 본 적 있나요?
- 해시코드를 생성할때를 보면, string 같은 곳은 자릿수보다 x31한다. 왜 31을 곱하는지 아시나요?
- 체크섬에 대해 아시나요?
- 인터페이스에 대해 설명해주세요.
- 인터페이스와 추상클래스 차이에 대해 설명해주세요.
- 자바8에서 인터페이스에 대한 변경이 있었는데, 이에 대해 설명해주시겠어요?
- final 키워드에 대해 설명해주세요.
- 자바에 있어서 예외가 어떤 것인지 간략하게 설명해주시겠어요?
- Checked 예외와 unchecked 예외에 대해 설명해주세요.
- Try & catch와 finally에 대해 설명해주세요.
- String에 있는 intern 메소드에 대해 설명해주세요.
- ‘+’로 string 합치는 연산을 이용하지 말라고 합니다. 이유를 설명해주세요.
- stringBuilder와 stringBuffer의 차이에 대해 설명해주세요.
- ‘+’로 string을 합치는 연산을 실제로 해도 되는데 왜 그런지 아시나요?
- 정규표현식이 어떤건지 설명해주세요.
- Inner class에 대해 설명해주세요.
- Nested class에 대해 설명해주세요.
- Annotation에 대해 설명해주세요.
- Double과 float는 돈 계산에 쓰지 말라고합니다. 이유에 대해 설명해주세요.
- 부동 소수점에 대해 설명해주세요.
- System.out.println은 가급적 쓰지 말라고 하는데, 이유를 아시나요?
- Generic에 대해 설명해주세요.
- 시간 복잡도와 공간 복잡도에 대해 설명해주세요.
- ArrayList와 Vector의 차이에 대해 설명해주세요.
- ArrayList가 내부적으로 어떻게 구현되어있나요?
- ArrayList의 default 사이즈는 몇인가요?
- Java8에서 ArrayList가 바뀐 사항에 대해 아시나요?
- ArrayList 삭제 연산에 소요되는 시간 복잡도에 대해 설명해주세요.
- Stack은 좋지않은 구현이라고 하는데 이유를 아시나요?
멘티→멘토 질문 목록
- Array<Number> a = new Array<Integer>(); 와 같이 Generic 타입 간의 다형성이 왜 안되나요?
- Stack을 쓸 때 (Double)LinkedList대신 ArrayList 사용하는 이유가 뭔가요? LinkedList는 데이터 추가 & 삭제 시 new 연산 및 gc 먹이 제공을 하기 때문인가요?
- HashMap 대신 HashTable 쓸 일이 있나요? HashMap을 동기화 처리하면 HashTable이 되는 것 아닌가요? (null put 가능 여부는 논외)
- 사용자 정의 클래스가 Equals 메소드를 오버라이딩 할때 HashCode 메소드 또한 오버라이딩 하는게 좋다고 배웠다. 왜 그런지에 대해 고민을 했었고, 오버라이딩 된 HashCode 메소드가 사용자 정의 클래스의 속성 등을 사용하여 HashCode를 생성하기 때문에 난수를 더 잘 생성하기 때문이라고 답을 내렸다. 생각 과정과 결과가 맞을까요?
2. 4주차 회고
벌써 한달이 되가네요. 근 1년 내이론적인 내용을 학습한 경험 중 3월 한달이 생각의 깊이 & 양 등 모든 방면에서 농도가 가장 짙지 않았나 싶습니다. 뿌듯하군요! 오늘은 색다르게 글을 적을 예정입니다. 왜냐하면 방금 재밌는 경험을 했기 때문이죠:) 오늘 아침에 오프라인 모각코를 오는 길에 회고, 똑똑하게 때와 상황에 맞게 골라하자! 글을 읽었습니다. 해당 글을 읽고 저에게 맞는 회고 탬플릿이 있으면 더 회고를 잘 할 수 있을 것 같다고 생각했습니다. 제 과거 회고는 형식이 없기 때문이죠. 좋은 형식은 좋은 컨텐츠를 만들기도하고 탄탄한 논리구조를 만들어주기에, 저는 3L(Like & Learn & Lack) 탬플릿을 이용하여 주간 회고를 작성해보겠습니다:)
역할: 백엔드 학습자
잘한 것
1. 컴퓨터 언어를 배우면서 궁금했던 점을 컴퓨터의 내부 동작 원리와 연관시킴.
2. 무언가를 왜 배우는가에 대한 이유를 적당한 시간동안 고민함.
3. 블로그가 아닌 oracle.doc과 같은 명확한 래퍼런스를 참조하려함.
배운 것
1. String HashCode 함수 내 31을 사용하는 이유 습득
->컴퓨터 내부 동작 원리와 함께 생각하면 더욱 논리적인 답을 낼 수 있음.
2. 부동소수점 고정소수점 차이 습득
-> 컴퓨터가 소수를 2진수로 표현하는 방법까지 알게되니 고정소수점의 한계를 명확하게 이해하게됨.
부족한 것
1. 다양한 래퍼런스로부터 지식을 습득하지 못했음.
-> 자바의 정석 책이 주는 내용중에서 자바의 신 책이 주지 못하는 내용이 꽤나 있어 보였음.
역할: 멘토링 3인 팀의 일원
잘한 것
1. 멘티와 월요일에 동기화 관련 지식을 나누고 토론함.
2. 토론 후 궁금한 점을 찾은 뒤 멘토와 공유함.
3. 블로그가 아닌 oracle.doc과 같은 명확한 래퍼런스를 참조하려함.
배운 것
1. 멘티와 같이 공감했던 문제를 멘토와 공유하니 Q&A 시간을 더 잘 활용할 수 있음.
부족한 것
1. 멘티와의 토론에서 내가 특정 문제를 지엽적으로 바라봤었다.
-> 물론 컨텐츠를 파고드는 것은 좋지만 멘티와의 오프라인 토론 시간은 한정적인걸 고려해야함.
역할: F-lab 오프라인 참여자
잘한 것
1. 오프라인 모각코 참여자와 Small talk를 한것.
2. 타 멘티에게 모르는 것을 적극적으로 물어본 것.
배운 것
1. Small talk는 멘티간의 친밀도를 높여준다. 이는 멘티간 질문 허들을 낮쳐줌. 질문은 조금 친할 때 더 하기 편하기 때문.
부족한 것
1. 더 f-lab 오프라인 모각코를 잘 활용할 수 있는 방안을 생각해봐야할 것 같다.
-> 내가 아닌 다른 멘티들 끼리도 small talk 잘 할수 있는 환경이면 좋겠다. small talk 더 잘할 수 있는 system?
역할: F-lab 온라인 참여자
잘한 것
1. 3인 멘토링 팀 내 공유된 제 팀 멘티의 동기화 이슈를 같이 고민해서 해결함.
배운 것
1. 멘티가 멘토에게 질문한걸 깊게 파고들면 흥미로운 관점을 얻을 수 있음.
부족한 것
1. f-lab 온라인 커뮤니티를 잘 활용하고 있지 않다.
-> 온라인 커뮤니티를 활성화 시키기 위해 내가 생각한 인사이트를 자주 공유해야겠다.
분야: 소프트 스킬
잘한 것
1. 타 멘티가 말한 소프트 스킬 향상이 필요한 이유를 적극적으로 들음.
2. 매일 10분씩 소프트 스킬을 향상시킬 수 있는 방법을 고민함.
배운 것
1. 소프트 스킬은 좋은 글 읽기, 글 쓰기를 반복하며 성장시킬 수 있음. 글쓰기만 해서는 소프트 스킬 성장은 한계가 있음. 자신이 알고 있는 최고의 글쓰기 한계 내에서만 성장하기 때문. 따라서 좋은 글 읽기와 병행되야함
부족한 것
1. 소프트 스킬 학습 루틴이 없다.
2. f-lab 일원들이 모두 소프트 스킬을 키울 수 있는 방법 부재
-> 나만 키우는 것은 안좋다. 커뮤니티의 성장과 더불어 이뤄져야함.
분야: 건강
잘한 것
1. 샐러드 꾸준히 먹기. 밀가루 줄이기.
2. 아침 10분 운동.
배운 것
-
부족한 것
-
멘토->멘티 질문 목록
이러한 느낌이다만 봐주세요. 아래 질문들이 답안이 되면 안됩니다. 아래 질문이 나오게 되는 사고 과정을 익히는게 중요합니다. 답안지를 가지고 공부하시면 성장할 수 없습니다.
1. 부동 소수점과 고정 소수점 차이?
2. 쓰레드와 프로세스 사이에 공유하는 데이터와 공유하지 않는 데이터는?
3. Volatile 키워드란?
4. Runnable과 Callable의 차이는?
5. Atomic 개체들과 cas 알고리즘에 대해 설명해주세요.
6. CAS 알고리즘이 lock에 비해 이득이 있는 경우?
7. String 해시코드에서 왜 31 쓰는가?
8. Double-checked-locking이란
9. Set이나 트리가 어떤건지 설명해주세요.
10. (선택)레드블랙 트리가 가지는 장점은?
11. 맵이 어떤건지 설명해주세요.
12. 해시 충돌에 대해 설명해주세요.
13. 해시 충돌이 일어났을 내부적으로 어떻게 저장하나?
14. CPU 코어 개수와 스레드 개수의 상관 관계는?
15. I/O에서 스트림이 어떤건지 설명해주세요.
16. Serialization과 Transiant 키워드를 같이 설명해주세요.
17. TCP와 UDP에 대해 설명해주세요.
18. 3way handshaking과 4way handshaking을 같이 설명해주세요.
19. 자바8에서 시스템 클래스에 나노 타임이 추가됨. 보통 애플리케이션에서 시간 기록시 나노 타임을 쓰라구 한다. current mili sec보다 나노타임을 쓰라고한다 왜일까?!
20. 인스트럭션은 블럭 단위로 일어남. 블럭 단위는 메모리의 이 데이터의 가용 영역.
멘티→멘토 질문 목록
1. 멀티코어 멀티스레드 환경에서 두 스레드가 동시에 하나의 volatile 데이터에 원자적으로 접근하려고 하면 어떻게 되나요? 한명은 1을 쓰려고 하고 한명은 기존 숫자를 읽으려하면 이상한 데이터가 읽히나요?
2. JSP는 레거시지만, 생 서블릿에서 mvc 패턴을 쓰고 하는 과정 중 하나로 JSP를 배우는건가요?
3. F-lab을 잘 활용하는 멘티들은 어떤 특징이 있었나요?
템플릿을 이용해서 회고록을 적어보니 명확한 기준이 있으니 내용을 채우기도, 확장하기도 좋네요:) 더 좋은 디자인으로 만드는 것은 더 고민해봐야할 것 같습니다 그럼 다시 오늘의 루틴을 하러 가보겠습니다. 안녕!
'회고 > f-lab 회고' 카테고리의 다른 글
[회고,f-lab] 5-7주차 회고. 개발자가 가져야 하는 태도. (0) | 2022.04.26 |
---|---|
[회고, f-lab] 1, 2주차 회고, 좋은 멘티 & 멘토, 정보 공유 커뮤니티의 존재. (0) | 2022.03.15 |