회고/코드스쿼드 - CS 과정

[WIL] 코드스쿼드 2022 백엔드 3주차 회고(2022.01.17~21)

jwKim96 2022. 1. 24. 10:41

이번주엔 무슨일이?

  • 01.17 월 : 메모리 모델..😵
    이번 주는 케이,선을로,Shine,Meenzino,부카,Lucid,Dave,donggi,Hanse와 함께하게 되었습니다.
    메모리 모델을 구현하는 미션이었는데, 그동안 기본적인 내용에 대한 공부에 소홀했던 제 자신을 반성하게 되었습니다.
    운영체제에서 메모리를 어떻게 관리하고, CPU는 어떻게 물리적인 메모리에 접근하는지 공부하게된 유익한 시간을 보냈습니다.
  • 01.18 화 : 과연 이해했나?🧐
    스스로 메모리 모델에 대해 어느 정도 이해를 했다고 생각하고 생각하고 미션 구현에 착수했습니다.
    하지만, 구현은 또 다른 문제였고 이를 어떤 구조로 해결해야할지 감이 잡히지 않았습니다.
    그렇게 삽질만 하고 있다가, JK가 강의에서 메모리 관리 방식이 발전해온 과정을 자세히 설명해주었습니다.
    강의를 듣고 나서야 잡혀서 구현을 마무리 할 수 있었는데요.
    지나고 나서 생각해보니 구조가 감이 안잡혔다는건, 아직 완전히 이해하지 못한 상태라는 것을 깨달았습니다.
    그래도 메모리 모델에 대해 공부하며, JVM의 메모리 관리 방법과 비교하며 공부할 수 있어서 좋았습니다.
  • 01.19 수: 알고리즘+메모리 공부👨‍💻
    이번주의 알고리즘은 프로그래머스의 문제들을 풀었습니다.
    이전에 풀어봤던 문제도 있었고, 상대적으로 쉬운 문제들이 많아서 오전내로 끝내고 오후에는 부족했던 공부를 더 했습니다.
    메모리 관리, JVM 메모리 구조, JVM GC 등등 공부하고 나니 하루가 다 지나갔습니다.
    이런 내용을 공부할때, 테코톡 발표내용들이 정말 많은 도움이 되었는데요.
    같은 취준생, 학생이신데 이런 수준의 발표를 한다는 것에 자극이 되어 열정을 불태운 하루였습니다.
  • 01.20 목 : 함수형 프로그래밍🤩
    이번에는 함수형 프로그래밍에 대해 공부해보며 순수함수, 참조투명성, 일급함수, 고차함수, 클로저 등의 키워드를 공부하고
    정리하는 시간을 가졌습니다.
    그동안 기계적으로만 사용했던 Java의 Stream에 대해 공부하고, 활용하여 미션을 진행하였습니다.
    Stream을 활용한 이유는, Stream에서 제공하는 메소드들은 순수 함수, 참조 투명성을 만족하는 고차 함수였기 때문에
    이를 활용하면 효율적으로 미션을 구현할 수 있을거라 생각해서였습니다.
  • 01.21 금 : 뿌듯😊
    함수형 프로그래밍은 크롱이 설명해주셨습니다.
    결국 모든 프로그래밍 패러다임은 개발•유지보수를 편하게 하기 위해서 탄생했다는 것을 느꼈습니다.
    객체지향은 캡슐화, 상속, 다형성등을 통해 안정적이고 확장성 있는 구조를 추구한다면
    함수형 프로그래밍은 순수함수, 참조 투명성, 일급 함수를 통해 글 처럼 읽을 수 있는 코드를 추구한다는 것을 느꼈습니다.
    그리고 특히 Miller의 함수형 프로그래밍 소스코드를 보며 감명받았습니다.
    저는 순수함수, 참조투명성, 고차함수 정도만 생각하고 Java의 Stream을 활용하여 미션을 구현했는데,
    Miller는 Java의 Function 인터페이스를 상속하여 일급함수를 만들고 조합하여 만들어냈습니다.
    프로젝트에서 Function 인터페이스를 활용할 일은 드물겠지만, 항상 미션은 프로젝트에 적용할만한 코드를 작성하는게 목표가 아니라
    주어진 주제를 깊이있게 이해하고 그걸 Java로 풀어내는것이라고 생각해서 완벽한 미션이라는 생각이 들었습니다.
    정말 훌룡한 동료들이 있어서 많이 배우는 일주일 이었습니다.

인상깊었던 것은?

  • Miller의 인상적인 소스코드
  • 매끄러운 스크럼을 진행을 위해 노력해준 케이(감사합니다🙏)
  • 함수형 프로그래밍과 객체지향은 공존할 수 있음

아쉬운 것은?

  • 일단 자전거부터 만들고 오토바이든 자동차든 만들어야 하는데, 처음부터 자동차를 생각했다.
    • Validation이나 확장성은 일단 제쳐두고 미션의 핵심 주제를 더 파고들자
  • 미션을 늦게 구현하여, 그룹 리뷰 준비를 거의 못한것이 아쉬웠음.
    • 첫 번째 항목과 일맥상통함.. 핵심 주제를 파고들어서 개발하고, 부가적인 로직은 시간이 남으면!
    • 미션을 구현 못했다고 리뷰 직전까지 개발하지 말고, 리뷰 전에 발표하고 공유할 내용을 정리하는 시간을 갖자!
  • 다음주 부터는 아침 일찍 일어나서 가볍게 산책이라도 다녀오자!
    • 저번주에도 다짐했지만.. 자꾸 늦게자고 늦게 일어나게 되어 쉽지 않았다..
    • 다음주는 꼭!!