OT때에는 스터디의 커리큘럼을 설명해주셨고,
다른 멘토님들도 특별히 오셔서
개발하면서 궁금했던 점 / 현직자에게 궁금한 점
Q&A를 진행했다.
1회차 스터디에 대한 내용을 기록해두지 않아서, 대충 그때 나와의 카톡에 적어둔 게 있는데
이유있는 코드가 좋은 코드다.
어떤 멘토님이 말씀 하신 건지 모르겠는데 와닿아서 나와의 카톡에 적어두었다!
재성님 : 피드백 받는 게 성장하기 위한 가장 좋은 방법이지만, 저는 그런 상황이 아니었을 때 남의 깃허브 레포를 찾아서 보거나 책 예제 코드를 보면서 좋은 코드를 따라하려고 했어요
예전에 함께 자라기를 조금 읽었었는데, 그걸 읽고 나도 성장하기 위한 가장 빠른 방법은 잘하는 사람에게 방법을 묻고 지속적으로 피드백을 받는 것이라고 생각했다.
근데 많은 사람들은 그런 상황이 아니니 누군가 질문을 했고 재성님이 위와 같이 말씀해주셨다.
(사실 내가 재성님 다라쓰 프로젝트 코드를 훔쳐봤었다 ㅎㅎㅎ)
어디에 지원한다는 것은, 나를 증명하는 것이다.
실력이 중요한 게 아니라 내가 끝까지 갈 수 있다는 사람인 걸 자소서에 구체적으로(실제 일어난 일이라고 생각되게끔) 녹여내야 한다.
이건 자소서/지원
에 관한 이야기지만, 마침 이 날이 sopt 지원 시작일이라 기억에 남는 말이였다.
1회차에는 java17 버전과 인텔리제이 Ultimate 버전을 설치했다.
java17은 그렇다 쳐도, 귀찮다는 이유로 인텔리제이 커뮤니티 버전을 1년이나 쓴 내가 너무 어이 없었다..ㅋㅋ
블로그 글 보러가기
rest api 정의에 대해 찾아보았고, 공공데이터 포털에서 공공api를 호출하는 시간을 가졌다.
블로그 글 보러가기
@Controller
와 @RestController
의 차이에 대한 블로그글을 읽어본 것이 좋았다.
그리고 나는 이 날 인텔리제이 Ultimate 버전으로 스프링부트 프로젝트를 만들 수 있다는 것을 처음 알았다. 지금까지 spring intializr에서 만들고 압축 풀었는데..
네트워킹이 중요하다는 생각을 하게 되었다.
블로그 글 보러가기
4회차부터는 작성해야 하는 코드가 좀 있었다.
나는 sopt 면접 준비하느라 과제를 제대로 못해갔는데, 5회차 스터디에서 멘토님이 코드 리뷰를 하라고 하셨다. 4회차 과제 나중에 대충 하면 되겠지~라고 가볍게 생각했는데 5회차에서 호석님의 코드 발표를 보고 많은 반성을 하게 되었다. 간단한 api에서도 고민점이 너무 많았고 spring 입문 스터디라 신청을 망설였던 내가 부끄러워졌다.
시간이 좀 지나 4회차 과제를 하고, 호석님 코드를 천천히 자세히 보는 시간을 가졌다.
호석님 피드백 + 내가 느낀 내 코드 문제점
- repository에서 Optional이 아니라 객체 그대로 반환 (수정 완료)
- Optional로 감싼 객체를
get()
으로 꺼내고 있었다. (NullPointerException 가능성 있음)- controller가
id(Long)
타입 반환,List
객체 반환 (dto로 감싸는 걸로 해결)
- List 안에 Dto를 넣어서 반환했었는데, 만약 나중에 Dto의 count를 response에 추가하고 싶다면 문제가 생기기 때문에 또 다른 Dto로 감싸서 반환하게 만들었다.
CheckedException
생성 (UnCheckedExceptio
n으로 변경)
- 호석님이 내 코드를 보고
CheckedException
을 사용하면 에러를 controller까지 던지게 되고, 그건 메서드의 모양을 변형시키는 거라고 하셨다. (갓호석..)- 상품 이름 중복 확인 로직에서 나는
equals()
로 객체의 이름을 비교했었다.
- 이 코드는 객체지향적이지 않다고 호석님이
isSameName()
이라는 메서드로 빼내보면 어떻겠내고 하셨다. 이 말을 회의 때는 그렇구나~하고 넘어갔는데
시간이 지나서Product
안에isSameName()
을 만드는 것이 객제지향적인 이유에 대해 생각해보았다.
Product
의 책임은 상품 정보를 알고있는 것이다. 그래서Product
라는 객체에게 상품 정보를 물어봐야 한다."너의 이름이랑 내 이름이랑 같은지 알려줘. 상품 정보가 궁금해"
라는 메세지를Product
에게 전달하는 것이다.isSameName()
메서드의 역할은 이게 아닐까 싶다.
(객체 간 소통을 하는 그림이 머릿 속에 그려져서 너무 신기했다)- 에러/오류 처리 구현 X
블로그 글 보러가기
프로그래머스 sql level1 문제들을 풀었고,
spring data jpa
를 세팅해서 엔티티 하나를 만들었다.
나는 workbench에서 insert 쿼리 실행했을 때 잘 돼서 잘 해갔다고 생각했는데 호석님이 @DynamicInsert
를 사용해야 한다고 알려주셨다. 호석님 아니였으면 틀린 걸 맞다고 생각하고 지나갈 뻔했다... 내가 받기만 하는 거 같지만ㅎㅎ 같이 하는 것이 이런 효과가 있구나! 싶었다.
블로그 글 보러가기
기존에 arrayList
에 데이터를 넣었었는데
Spring Data JPA
를 이용하도록 바꾸는 작업을 했다. 나는 메서드 이름 선언만 하고 신화 미션(@Query
사용)은 하지 않아서 아쉽다. 꼭 이 회고 쓰고 보완하자!
블로그 글 보러가기
swagger
로 API 문서를 만들지 못한 게 아쉽다.
api문서 만들기가 메인이긴 했지만 상점 도메인을 추가로 구현했다. 이때 나는 4회차 과제를 보완했는데 day4 branch를 day5, 6, 7에 merge
하는 게 헷갈리기도 하고,, 애초에 이게 맞는지 모르겠다... git 때문에 시간을 엄청 썼다.
분명 간단한 기능인데 (심지어 심화 과제 못했는데도) 시간을 꽤 많이 썼다. 그런데도 아직 부족한 점이 많다....
8회차에는 해야 할 과제가 없어서 호석님과 여러 얘기를 나눴다. 더 빨리 친해졌으면 더 좋았을텐데ㅠㅠㅠ 호석님이랑 얘기하면서 몰랐던 책도 알게 되고, 코드 리뷰도 받고, 우테코 얘기도 엿듣고 고민 상담(?)도 해서 나는 얻어가는 게 정말 많았다. 나도 hashCode 재정의 코드 얘기와 OctoTree 의 존재를 말씀 드려 작은 도움이 되었다 ㅎㅎ
나는 팀원 운이 좋았던 거 같다. 리뷰어 지정 해달라고도 해주셔서 7회차 과제는 호석님께도 리뷰를 받았다!! 잘 알려주시는 모습을 본받고 싶다.
그리고 스프링 입문 스터디라 너무 쉽지 않을까 걱정했지만 전혀 그럴 필요가 없었다.ㅎㅎㅎ 나의 실력 부족을 아주 느끼게 한 스터디였다.
번외로 모그님이 소회의실 오셔서 해주셨던 얘기가 생각난다.
현재 다니고 있는 회사의 인턴으로 모그님과 같이 뽑힌 사람 중에, 깃헙 아이디도 없는데 알고리즘 논문을 써서 합격한 사람이 있다고 하셨다. 직무 관련 프로젝트 경험보다 학습태도
가 어떤지를 보고 얘는 와서 뭐라도 하겠다!
싶은 사람을 기업에서 채용한다고 해주셨는데 그 말이 지금까지도 기억에 남는다. (깃허브 계정도 없는데 그렇게 좋은 기업에 간다는게 조금 충격이였다.)
그 날 이후로 내 학습태도
에 대해 생각해보았다. 내가 프로젝트에 급급하지는 않았는지, 공부하는 목적이 무엇이고 지식을 대하는 태도가 어떤지 반성하는 시간을 가졌다.
당장 나보다 실력이 좋은 사람만 봐도 마음이 급해지는데, 신입이 진짜 가져야 하는 역량은 실력이 아니라 실력을 성장시킬 수 있는 학습태도(잠재적 능력)이라는 걸 잊지 않길 바라며 이 글에 남겨본다..!
팀원분들과 빨리 친해졌더라면, 스터디 시간이 더 즐겁고 정보공유도 원활했을 것 같은데 그러지 못한 게 아쉽다.
그리고 sopt 지원하느라 열심히 하지 않았던 내가 아쉽다. 스터디의 난이도가 어떻든 내가 노력하는 만큼 얻어갈 수 있었을텐데...
코드적인 부분에서 더 보완해야 할 점은,
1. 에러 오류 처리 (response 인터페이스화 하기)
2.WebClient
로 달러, 원화 변환 기능 보완
3.spring data jpa
가 인터페이스만으로 동작하는 이유 아티클 읽기
4. 6회차 심화 과제 (@Query
)
5.swagger
로 api 문서 만들기
6. 이름 변경 ex)ProductEntity -> Product
,setX -> exChangeX
7. (욕심이지만) 테스트 코드 작성
제 이름이 꽤 보여서 부끄럽네요 ^^,,
지금도 그러지만 저는 조급해했던 시간들이 너무나도 많았습니다 ㅠ
마음이 급해지니 잘하던 것도 그르치는 경험도 종종 있었던 것 같아요 ㅎㅎ
요즘은 마음을 고쳐먹고 천천히 즐기면서 꾸준하게 하다보면 언젠가 내가 원하는 개발자가 되어있을거라고 의식적으로 생각해보려고 노력하고 있는데 꽤 도움이 되었던것 같아요!
4주 동안 너무 재미있었습니다 노을님!
언젠가 다시 뵙게되면 그땐 좀 더 긴 대화를 나눴으면 좋겠습니다!
고생하셨습니다!