본문 바로가기
회고

[코드숨] 1주차 회고

코동이 2021. 1. 24.

dal-lab.com/2019/09/18/today-i-learned/

 

오늘 나는 무엇을 배웠나?

오늘 나는 무엇을 배웠나? 2019년 9월 18일 - 아샬 초기 스타트업을 위한 컨설팅 업체인 thoughtbot이란 곳이 있습니다. Ruby on Rails가 유행하던 시절에 여러 기술을 공유해서 유명한 곳이죠. Active Storage

dal-lab.com

회고를 쓰기 앞서서, TIL ( Today I Leaned)에 대한 내용, 특히 Three FS를 활용하는 방법을 이해해야 합니다.

위의 달랩 홈페이지 아샬님의 글에서 관련된 내용을 확인할 수 있습니다. 

 

1. Facts(사실, 객관)

 

 - Http, REST API, Json, Jackson 개념 공부하기

 - ToDo REST API 만들기 ( CRUD )

 - Pull Request 방법을 익히고 commit 하기

 - '자바와 JUnit을 활용한 실용주의 단위 테스트' 이해 잘 안되도 p140까지 읽기'

 - '가장 빨리 만나는 코어 자바 9' 스트림에 대해서 읽고 관련 영상 시청

 - Java에서 static을 쓰는 것은 악이다!!!!

 - 객체지향 생활체조를 보고 예시를 확인한다.

 - Exception에는 unchecked와 checked가 있으며....

 - Java Doc를 통해서 세부 사용법 확인하는 습관을 가져야한다!!

 - Object를 사용하면 단일 객체와 리스트 객체를 한번에 관리할 수 있다.

 - 원하는 문자열을 substring 할 때, 숫자로 하면 가독성이 떨어지므로 문자열.length()를 고려한다.

 - stream을 통해서 데이터를 조회해보자. + optional을 알아야 안전하게사용할 수 있다.

 - enum을 통해서 상수인 HttpStatus 코드를 정의한다.

 

2. Feelings(느낌, 주관)

 

 말로만 듣던 pull request를 직접 해보았습니다. 또한 코드리뷰를 받았습니다. 저는 완벽주의 성향이 좀 있어서 어설픈 나의 상태와 촌스러움을 드러내고 싶어 하지 않습니다. 하지만 중간중간 나의 코드를 점검받고 공유하는 것은 리뷰어께서 친절하게 확인해주셔서 오히려 더 마음껏 시도해보고 있습니다. 코드숨 과정에서 가장 중요하게 얻어갈 수 있는 점이라고 생각합니다. 진짜 코드에 숨을 불어넣어주십니다.ㅎㅎ 또한 종립님께서 리뷰를 해주실 때, 저의 어려움에 대해서 "이것이 답이야!"라고 말해주시지 않고 여러가지 방법을 열린 결말로 남겨주십니다. 그러면 또 스스로 고민하면서 더 나은 방향을 생각하고 각인되어 체득이 됩니다.

 

 이번 강의와 관련하게 책들을 추천해주셔서 읽어보고 있습니다. 직접 사용하는 것이 가장 습득의 빠른 길이므로 일단 이해가 되지 않더라도 큰 흐름을 잡고 읽어나갑니다. 특히 데이터를 조회할 때, 스트림을 사용했던 해설강의를 참고하여 조금씩 관련 함수들을 익혀보도록 하겠습니다. 사실 스트림을 보고 싶은 가장 큰 이유는 간지입니다. ㅋㅋㅋ 둘째로 코드양을 짧고 간편하게 만들어줍니다.

 

 좋은 설계와 구조란 무엇인가에 대해서 고민해보게 됩니다. 어떻게하면 중복을 줄이고 효율적으로 짤 수 있는 구조에 대해서 고민하게 됬습니다. 아무래도 리뷰어님들은 많은 경험이 있다보니, 아직 경험이 없는 저에게는 많은 선택지를 제공해주십니다.

 

3. Findings (배운 점)

 

 Java로 웹을 만들어야 하는 과정이기 때문에 1주차는 관련 내용에 대해서 많이 살펴볼 수 있었습니다. Json의 형태로 데이터를 주고받으며, 그 과정에서 Jackson을 통해 데이터를 처리합니다. 특히 ObjectMapper를 사용했습니다.

 

 pull request에 대해서 알 수 있었고 branch별로 버전을 관리할 수 있다는 것도 배웠습니다. 집에 '깃&깃허브 입문' 책을 본 적이 있는데 다시 한번 확인 해봐야겠습니다. branch에 대해서 이해가 더욱 필요합니다. 내가 만든 저장소와 원격의 저장소는 독립적으로 다른 공간이라는 것을 명심합니다!! 특히 git push origin <나의 branch 명>으로 pull request를 날려야 하는 것은 항상 주의해야 합니다. 

 

 static 사용을 탈피하기 위해 enum을 사용합니다. 아샬님이 올려주신 문서에 따르면, static은 응집도를 낮추고 결합도를 높입니다. 이것은 굉장히 프로젝트를 난잡하게 만듭니다. 이를 통해서 객체지향이란, 각각 최대한 독립적으로 존재하고 명확한 경계가 필요하다고 느꼈습니다.

 

 객체지향 생활체조 글을 여러번 읽으면서 느낀점은 다음과 같습니다. 최대한 비지니스 로직은 메서드로 분리하도록  합니다. 또한, 변수의 값은 직접적으로 접근하는 것보다 메서드를 통해서 요청하는 것이 안전합니다. 예를 들어, 과제에서 task를 create를 할 때, id++을 generateId()라는 메서드를 통해서 수행하도록 만듭니다.

 

 Exception에 대해서 공부해보았습니다. 아샬님이 올려주신 문서를 통해 크게 2가지인 unchecked와 checked 예외에 대해서 공부했습니다. 결국 우리는 각 예외를 어떻게 처리하고 관리해야하는가? 에 대해서는 아직 답을 찾지 못했습니다. 문서를 다시 읽어보고 책을 보도록 하겠습니다.

 

 Task, List<Task>를 처리할 때, Object를 통해서 객체를 받으면 한번에 처리가 가능합니다. 이전에는 Task, List<Task> 각각에 대해서 메서드를 만들었습니다.

 

 Stream의 편의성을 느꼈고 더불어 Optional을 같이 사용해야 합니다. 열심히 공부해서 필요한 곳에 감을 잡을 수 있도록 공부하겠습니다.

 

 가독성 좋은 코드구조와 변수명이 필요합니다. Status라고만 사용해서는 어떤 상태를 사용하겠다는 건지 짐작하기 힘듭니다.. 지적하신 부분을 HttpStatus를 고쳤더니 이해가 한번에 된다는 것을 깨달았습니다.

 

 중복되는 부분은 꼭 다시 Extract Method를 사용합시다! 아샬님께서 한 메서드 안에서 3번이나 중복되는 로직에 대해 중복성 제거를 요청하셨습니다. interface를 만들던지, 새로운 메서드를 만들던지 다양한 방법이 있겠지만 저는 해설영상을 참고해 Extract Method를 진행했습니다. 

 

4. 자기 선언(Affirmation)

 

 항상 Java 문법을 사용할 때, 꼼꼼하게 Docs를 읽고 사용하도록 하겠습니다. 특히 멘토님들께서는 관련된 문서는 항상 공식 페이지에서 제공해주십니다. 앞으로 공식 문서를 가장 먼저 확인하는 습관을 가지도록 하겠습니다.

 

 계속 자바와 관련된 서적을 읽겠습니다. 당장은 이해가 되지 않더라도 내가 필요할 때, 찾아서 확인할 수 있도록 밑바탕을 잘 다지겠습니다. Unit Test와 Java 문법, 효율적 구조에 대해 좋은 정보들이 많이 있습니다.

 

 좋은 구조에 대해서 항상 고민하고 답을 한정짓지 않겠습니다. 종립님이 리뷰해주시면서 답이 정해진 것은 없다고 말씀하셨습니다. 수직적으로 해결책을 가지는 것이 아니라 상황에 따라서 최선의 결과가 무엇인지 고민하겠습니다.

 

 

5. 마무리... 회사생활과의 병행

 

 저는 지금 신입 입사를 한 상태에서 코드숨을 수강합니다. 리뷰 제한이 10시인 것이 저는 아쉽습니다. 왜냐하면 빨라야 7~8시에 과제를 시작하기 때문에 10시까지 한 단위를 마치는 것이 빠듯하게 여겨집니다. 하지만 슬랙에서 말해주신 것처럼 1시간이라도 잘 단위를 잡아 매일 꾸준히 업로드하고 피드백을 받으면 많이 배울 수 있을 것입니다.

 

 코딩 관련 서적은 출퇴근에 읽습니다. 최대한 시간을 효율적으로 사용하려고 합니다.

 

 연수기간이고 널널하게 시간을 가지기 때문에 회사에서도 코드숨 과제에 대해 생각합니다. 코드는 짜지 못하지만 과제에 필요한 정보들과 문서를 어느정도 습득하고 저녁에는 최대한 코드짜는 것에 시간을 투자하는 방향으로 확보해야 겠습니다.

반응형

'회고' 카테고리의 다른 글

210301_TIL  (0) 2021.03.02
[ 코드숨 ] 5주차 회고록  (0) 2021.03.01
[코드숨] 4주차 회고록  (0) 2021.02.22
[코드숨] 3주차 회고  (0) 2021.02.08
[코드숨] 2주차 회고  (0) 2021.01.31