🔔[Born To Be Dev] Innovation Camp/TIL

22.09.08 (목) 39일 차

디카페인라떼 2022. 9. 9. 00:36

오늘 한 것

  • DB공부 - sql / 생활코딩 + 블로그 공부한 내용 정리하기
  • [팀과제]마무리하기....? 피드백 받기

오늘 배운 것

내일 할 것

  • 클론코딩 주차 시작...
  • DB공부
  • swagger
  • git action
  • git issue 관리 
  • 제발 테스트코드공부해 ... 스파르타 3주차 강의

팀과제 마지막 제출날....

사실상 백엔드 쪽은 기능을 다 구현했고 이미 서버를 배포했고 이미 그걸로 프론트 분들이 구현중이셔서 

딱히 할게 없어서 간만에 공부를 하고있었는데 

 

역시나 무언가 문제가 많았다...

회원가입에서 로그인 에러 로그가 뜬다고 ..ㅜㅜ 

로직상으로 그럴수가 없어서 굉장히 당황했으나 프론트쪽의 문제였었다 ㅎㅎㅎ

 

배포에서도 ... 계속 에러가 나서 .. 결국에는 배포도 실패하고 로컬에서도 갑자기 기능이 안되서

발표도.... ㅜㅜ 차마 제대로 끝내지 못하였다...

마지막 발표때까지 다같이 고민하다가 ...ㅠㅠ 못해냈다..

 

이런 에러가 계속 뜬다고 하셨는데 

백엔드 서버는 http 이고

프론트 서버는 https 여서 일어난 에러 같다..

하지만 해결하지 못하고 이번주가 끝났으니.. 아쉽다

 


더보기

[피드백]

 

1. 깃허브 정리 잘하고 있음!

=> 초기 커밋하고 난 후에 각자 브랜치로 메인을 머지해서 시작 

=> 기능구현이 끝나면 메인으로 머지

=> 멤버2가 메인을 본인 브랜치로 머지 (충돌 잘 처리하기)

=>멤버2 기능구현 후 다시 메인으로 머지  => 멤버1 브랜치로 메인 머지 .. 반복

 

충돌이 적었을거라고 칭찬해주셨음

 

2. 서비스를 서비스 인터페이스와 구현체

 

써보니 어땠는지 ..... 물어보셨는데 제대로 대답을 못한것 같다

서비스 인터페이스와 구현체를 쓰면 의존성주입이 자동으로 되기 때문에 편리하다..!

=> 구현체가 2개 이상일때는 어떻게 할 것인지

찾아보라고 하셨다..!

 

3. 패키지 정리 잘하기..!

=>config 도 따로 정리하고

=>jwt 패키지에 모든 security 를 넣지말고 security패키지를 만들어서 관리..

 

코드나 로직에 대해서는 다 잘했다고 해서 안도했다....

 

 

더보기

안녕하세요 스프링 선생님들 수고 많으셨습니다.
오늘 멘토링 진행중에 조금 생각나고 공유하고싶은 내용들을 정리하고 싶어서 글을 썼습니다.

 

 

1. 공통적으로 그리고 평균적으로 대부분 컨트롤러/서비스/리포지토리의 구조에는 어느 정도 익숙해지신 것 같고,

아주 기본적인 crud는 어디서 어떠한 일들이 일어나는지 구분하시는 것 같아 보였습니다.

직접 멘토링 하면서는 여러번 말씀 드렸지만 이제 슬슬 복잡해지는 로직에 맞게,

대비하기 위해서 기본적인 sql 쿼리 지식들과 데이터베이스 관련 간단한 지식들을 습득하시면 좋을 것 같습니다.

 

유튜브에 sql로 검색하면 짧은 강의들이 많으니 2~3시간 내외의 강의 골라서 숙지하시고,

이후에는 jpql이나 queryDsl을 사용 할 준비를 해보시면 좋을 것 같습니다.

 

2. 다음은 테스트 코드입니다. 

백엔드, 프론트엔드가 그래도 어느 정도는 분리되고 서로 협업을 하는 시점 즈음부터는

아마 취업용 포트폴리오에 이 즈음의 프로젝트들을 올리고 싶어지실 것 같고,

그렇게 하기 위해서 테스트 코드를 작성해보시면 좋을 것 같습니다.

테스트 코드를 작성하면서 고민하고 공부하게되는 일들이 엄청 많습니다.

 

예를 들어 테스트 코드 작성이 난해한 경우 소스코드의 구조 자체를 고민하게 된다던지.

혹은 단위 테스트를 하면서 각각의 레이어에 대한 이해가 높아지거나

기존 프로젝트의 구조를 다시 고민하게 된다던지 하는 일들이 많습니다.

 

그래서 다음 프로젝트에서는 꼭 고민해보시면 좋을 것 같습니다.

처음 시작하시기 막연하시면 이러한 글 읽어보시면서 따라해보시면 좋을 것 같습니다.

(모킹에 대한 논쟁도 있는데 그래도 저는 시작하는 시점에서는 매우 좋다고 생각합니다.)

그리고 성취감을 높일 수 있는 Jacoco같은 것들도 있습니다


1. [TDD 단위 테스트(Unit Test) 작성의 필요성 (1/3) - MangKyu's Diary](https://mangkyu.tistory.com/143)
2. [Mockito란? Mockito 사용하기](https://scshim.tistory.com/439)
3. [코드분석도구#2 Jacoco 적용하기](https://jiwondev.tistory.com/159)

 

 

3. 다음은 프론트와의 협업 과정중에서 시간을 낭비했던 것들을

잘 기록하고 정리해서 넘어가서 시간을 아끼시길 바래요..

맞으면서 배우는 cors라던지..

그래도 팁을 조금 드리자면

 

1. 일단 먼저 통신 문제를 해결하고 넘어가는게 좋습니다.

양쪽 모두 최소한의 배포가 가능한 상태로 만들고 (가능하면 아주 빠른 mbp 배포, 아니라면 가라 api라도 파셔서...) 관련 에러들을 잡고 시작하는게 좋습니다.


2. 연결과정 혹은 연걸상태에서의 에러는 일반적으로 프론트엔드 백엔드 서로 핑퐁해가면서 해결하셔야 합니다.

 

ex) 프론트엔드에서 콘솔과 네트워크탭으로 오류문구나 상태코드를 찾기 -> 같이 검색 -> 프론트엔드에서 콘솔과 네트워크탭으로 오류문구나 상태코드를 찾기 -> 같이 검색 -> 프론트엔드에서 콘솔과 네트워크탭으로 오류문구나 상태코드를 찾기 -> 같이 검색 -> 해결)


3. 그 이후 작업해가는대로 배포해가면서 프로젝트 완성시키기
와 같은 순서가 조금 감잡는데 편한 것 같습니다.

그리고 협업을 도와주는 스웨거 같은 툴도 있고 매우 간단하게 도입 할 수 있으니 고민해보세요

 

[Spring BootSwagger 사용해보기(Gradle) :: 공부하는개미](https://antstudy.tistory.com/251)

 

4. 마지막으로 어떻게 배포할지, 어디에 배포할지 고민해보시면 재미있는게 많습니다.

ci/cd라고 하면 너무 거창하지만

아주 간단하게 github actions와 code deploy정도 사용해보시는건

조금의 시간투자로 아주 많은 시간을 아낄 수 도 있습니다.

 

당연히 여기도 재미있는 것들이 많아서, 테스트 커버리지에 따라 마스터 머지를 막는다거나,

무중단 배포를 해준다거나, 스케일업 스케일아웃도 자동으로 해준다거나 그냥 재미있는 k8s라거나...

하는 것들이 있습니다. 

 

다만 프로젝트의 완성도가 우선이기에 너무 심취하지 마시고

일단 깃헙액션정도로 간단한 배포 자동화 정도만 신경써보세요.

 

인스턴스 접속해서 nohup java jar 어쩌고 담당하셨던 분들은 에어팟마냥 삶의 질이 상승하실겁니다. 

 

 

이것도 보고 따라해보세요[github-action 으로 ec2 에 배포하기 - 베스핀글로벌 테크블로그](https://blog.bespinglobal.com/post/github-action-%EC%9C%BC%EB%A1%9C-ec2-%EC%97%90-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0/)

 

무튼 모두 수고 많으셨습니다. 이번주에 완수하셨던 완수 못하셨건 좋은 공부에 다른 팀원들과는 다른 상황이 생길 수 있으니 너무 자책하시거나 너무 기고만장하지 마시고 다음주 잘 준비하셨으면 좋겠습니다.여기는 그런게 없지만 한국에는 추석이라는 명절이 있는데, 저는 추석 잘 보내고 놀다 오겠습니다!

'🔔[Born To Be Dev] Innovation Camp > TIL' 카테고리의 다른 글

22.09.10 (토) 41일 차  (0) 2022.09.11
22.09.09 (금) 40일 차  (0) 2022.09.10
22.09.07 (수)38 일 차  (0) 2022.09.08
22.09.06 (화) 37일 차  (0) 2022.09.07
22.09.01 (목) 32일 차  (0) 2022.09.01