1차 CS 스터디 _ 자바

김지민·2024년 12월 10일
0

회고록

목록 보기
1/11

현재 알고리즘 스터디와 프로젝트를 진행하고 있는 팀원들과 CS 면접 스터디를 시작했다. (사실 시작한지 한달도 넘었는데..)

우선 우리는 매일 스터디를 진행하고 있기 때문에, 매주 화요일, 금요일은 개념 발표하는 시간으로 갖고 매달 말에 커밋 등으로 만나는 날 모의 면접을 하는 방식으로 진행하고 있다.

✅ 매주 화요일, 금요일 개념 발표

✅ 매달 1회 모의 면접

🧑‍🏫 스터디 방식 제안

  • 목적
    • 올바른 개발을 위해 CS 지식을 꾸준히 공부한다.
    • 면접 때 알고 있는 지식을 요약해서 잘 전달할 수 있도록 한다.
    • 각자의 장점과 단점을 알고 더 성장하자.
  • 개념 발표
    • 진행방식
      • 각자 준비한 내용 발표
      • 팀원에게 자신이 공부한 파트 부분 모의 퀴즈
        • 질문받는 사람을 랜덤으로 선정하여 본인이 공부한 부분에 대해서 알고있는지 확인.
        • 모를 경우에 해당 내용을 알고 있는 다른 스터디원이 추가 설명 또는 질문자가 다시 설명.
      • 서로의 정리 내용을 보고 궁금한 점 질문
      • 따로 알게 된 사실 공유
      • 해당 주제에서 질문할 수 있는 내용 공유
    • 스터디 주제
      • 네트워크
      • 운영체제
      • 데이터베이스
      • 자료구조
      • 자바
      • 스프링
  • 모의 면접
    • 진행
      • 주제별 2주 간의 팀별 스터디가 끝나면 모의 면접 진행
      • 각자 면접 질문을 준비해온다.
      • 랜덤으로 1:1로 질문한다.
      • 출제자가 면접자에게 질문하며 Notion에 질문을 입력한다.
      • 면접자는 notion을 보지 않는다.
      • 그외 스터디원은 노션에 피드백을 입력한다.
      • 면접자가 대답을 한 후 추가적인 설명을 덧붙이고 싶은 스터디원은 자유롭게 이야기한다.
      • 만약 면접자가 대답을 못해 pass를 외친 경우 다른 스터디원 중 대답할 수 있는 자가 대답을 한다.
      • 모두 대답하지 못한 경우에는 해당 개념에 대해 같이 이야기를 나눈다.
    • 질문 내용
      • 주제에 대한 학습이 되었는지 확인한다.
      • 출제자와 다른 스터디원 중 꼬리 질문이 가능하다면 꼬리질문도 출제한다.
    • 서기
      • 출제자가 질문 후 노션에 본인 질문 작성
      • 전전 출제자가 현재 면접자의 답변을 요약해서 정리
    • 피드백
      • 면접자가 의도한 방향과 답변이 무엇이었는지 설명하고, 다른 스터디원들도 추가적으로 피드백하는 방식
      • 답변 후 간단하게 면접자 피드백 작성
        • 좋은 점
        • 아쉬운 점
        • 개선할 점
    • 회고
      • 모의 면접이 끝난 후
        • KPT
          • Keep : 좋았던 부분, 앞으로 유지하고 싶은 방식
          • Problem : 잘 되지 않았던 부분, 개선이 필요한 방식
          • Try : Problem을 해결할 수 있도록 실천해보고 싶은 솔루션 제시

🧑‍🏫 스터디 순서

⇒  자바 → db → 네트워크 → 운영체제 → 스프링 → 자료구조 + 디자인패턴

1차 CS 스터디 주제 : 자바

  1. JVM, JDK, JRE, JIT
  2. 동등성, 동일성 (equals, hashCode)
  3. 객체 지향
    • 4가지 특징
      1. 추상화
      2. 상속
      3. 다형성
      4. 캡슐화
    • SOLID (5가지 원칙)
      1. SRP
      2. OCP
      3. LSP
      4. ISP
      5. DIP
  4. 불변성
  5. 제네릭 타입
  6. 컬렉션(Collections)
  7. 람다 · 스트림
  8. 자바 컴파일 과정
  9. call by value, call by reference
  10. 인터페이스와 추상클래스의 차이
  11. 클래스 · 객체 · 인스턴스의 차이
  12. 예외처리
  13. 캡슐화와 은닉화의 차이
  14. 자바의 장단점
  15. String, StringBuffer, StringBuilder의 차이
  16. 비동기(async) · 동기 (Concurrency)
  17. 스레드 (synchronized)
  18. 오버로딩과 오버라이딩의 차이
  19. 가바지 컬렉션(Garbage Collection)
  20. static, final
  21. 접근 지정자 public, protected, default(패키지 접근), private

한달동안 이 주제들에 대해 공부한 후 대면으로 모여 각자 10개 정도의 질문을 뽑아와서 한명씩 돌아가면서 질문을 제시하고 질문에 대한 답을 아는 사람들이 대답하고 그 대답에 대해 피드백하는 방식으로 진행했다.

느낀 점

내가 생각보다 대답을 거의 못해서 .. 더 열심히 해야겠다고 생각했고 CS 지식들을 책에서 공부한 것도 있지만 구글 검색으로 공부한 것들도 많았는데 잘못 알고 있는 부분들도 꽤 있었어서 서로 피드백하며 고쳐나간 부분이 좋았다.

내가 준비해갔던 질문 리스트인데, 다른 사람들과 겹치는 부분도 있어서 그에 대한 피드백도 같이 정리해두었다.


혼자 공부하는 것보다 머리에 더 남았고, 피드백 줄 수 있던 부분이 좋았다!
앞으로 남은 CS 스터디도 화이팅 😃

profile
백엔드 개발자를 준비하는 삐약이 대학생에서 .. 취준생🐣

0개의 댓글