💋 오늘 공부한 내용 오늘 제나랑 같이 OAuth 구현을 마무리했다. 할일 목록 가운데 필수적인 것들은 마무리했는데, 아직 리팩터링이 미흡.. 근데 레벨3 기간 안에 할 시간이 있을지는 잘 모르겠다 백엔드 4인방이 열심히 멀티 쓰레드로 돌리고 있는데, 나름 오늘은 다들 성과가 있는 것 같아서 기분이 좋다. OAuth 카카오 소셜 로그인을 구현했는데, 주는 정보가 필수는 닉네임 딱 하나라서.. (당황) 전화번호가 필수인 우리 비즈니스 로직상 전화번호를 별도로 입력받아야만 한다. 따라서 전화번호 조회 및 저장 API를 새로 만들기로 했다. 호다닥 저녁 먹고나서 만들었음... CICD에 조금 문제가 생겨서, 팀원 모두가 수동 배포를 할 수 있도록 스크립트를 작성했다. 💋 감정 회고 광복절, 그리고 월요일 샌드..
💋 오늘 공부한 내용 updatedAt, createdAt이 처음에 같은 값으로 들어간다는 것을 알게 되었음. 토미가 오늘 MySQL에서 트랜잭션과 인덱싱에 대한 수업을 했다. 뒤로 갈수록 매우매우 어려워졌는데, 어떤 키워드를 공부해야 할 지에 대해 알아갈 수 있어서 좋았다. 이번 스프린트 때 만들 API를 모두들 작성해서, 코드를 리뷰하고 리뷰 반영하고 머지했다. 우리 인프라의 현재 구조에서 운영 서버와 모니터링을 할 수 있는 방법에 대해 이야기했다. 테스트 개수가 늘어나면서 점점 시간이 정말 오래 걸리기 시작했다. 테코블 테스트 성능 개선에 대한 글을 읽고, 우리 프로젝트에 곧장 적용했다. 로컬에서는 큰 차이가 안날 것 같지만 일단 조금 아주 쪼오끔 빨라졌다. 그렇다면, 깃허브 액션에서의 CI에서는?..
💋 오늘 공부한 내용 드디어 S3를 받기로 토미가 전달해줬고, 신난 팀 전원이 모여서 S3, cloudfront 연동을 했다. 처음 계획은 프론트엔드 서버에서 S3에 접속해서 이미지를 저장하도록 하고, 조회 시에는 백엔드에서 보내준 링크를 통해서 조회하도록 하는 것이 목표였다. 하지만 프론트엔드의 입장은, 해보다보니 안되는 이슈가 있다고 했다. (라잇과 윤생이 열변을 토하며 설명해도 못알아들은 나...) 전략을 바꿔서, 백엔드에서 S3에 이미지를 저장하는 것을 맡기로 했다. 기존 API는 프론트엔드에서 백엔드로 저장된 이미지의 주소를 String 형태로 보내주고 있다. 이걸 위해서 API를 바꾸기보다는, 사진 하나를 multipart로 전달해서 백엔드 쪽에서 S3에 저장한 뒤에 저장된 주소를 프론트엔드 ..
💋 오늘 공부한 내용 이번 데모데이 요구사항 중 Logging에 대한 내용이 있어서, 테코블 글을 보면서 적용해봤다. 결과적으로 적용한 PR도 첨부! 한 가지 문제가 아직 있는데, 로그에 색깔을 적용하기가 어려워서 현재 로그가 흑백 세상이다 ㅠㅠ 봐줄 수가 없음. 얼른 고쳐봐야겠다. 오늘 토미의 수업 중에서 배포(무중단배포)와 롤백에 대해서 들었다. 방법이라기보다는 현업에서의 경험담에 가까웠는데 너무너무 재미있었다. 내용 잘 정리해서 포스팅해볼 예정 ㅎㅎ 전체팀원 모여서 이번 스프린트에서 해야 할 일들에 대해서 정리하고, 새로 추가될 API 설계를 모두 했다. 내 파트가 정해졌다. 또 오늘도 백엔드끼리 진한 토의를 했다. [BE] 방문 횟수 로직 변경 시 데이터 migration 이슈 #397 [BE] ..
💋 오늘 공부한 내용 주말에 운전연수를 좀 열심히 했더니 테스트 코드를 작성해오기로 한 것을 못해서 오늘은 1시 출근이지만, 10시에 왔다. 오전 중에 Controller, Service slice test 작성을 완료했다. 테스트 코드 중에서 사소하게 통일성이 없는 부분에 대해서 디스커션을 작성했다. assertAll vs SoftAssertions @SuppressWarnings("NonAsciiCharacters") 등의 편의 어노테이션 통일 팀원들이 주말 동안 작성한 테스트 코드와 3차 데모데이까지의 코드 리뷰를 완료했다. 이번주부터 회원가입 및 로그인 기능을 구현하기로 했기 때문에 OAuth 강의를 찾아 들었다. 💋 감정 회고 요즘 대중교통 근처에서 흉흉한 일이 자주 벌어지고 있는데, 너무 무서..
💋 오늘 공부한 내용 오늘은 3차 데모데이! 우리팀 발표는 아래 첨부파일에서 확인 가능! 피드백은 뭐.. 무난했다. 주로 UI에 관한 피드백인게 좀 아쉬웠다. 나머지는 잘 한건가..?!! 💋 감정 회고 요즘 세상이 흉흉해서 집에 택시 타고 왔다. 이어지는 테러로 인해 집에 택시를 타고 왔다. 💋 오늘의 포스팅
💋 오늘 공부한 내용 너무 개인공부를 안한다는 생각이 들어서, JPA 강의를 그나마 쫌쫌따리 듣고 있는데 최근 3일 동안 이정도 들었음. 그래도 다시 보니 은근 많이 들은듯? 그래도 아직 새로운 내용은 그닥 없어서 그냥 복습 느낌으로 듣고 있다. 맨날 h2 data url 어떻게 하나 찾아보기 너무 힘들었는데 괜찮은 Cheat Sheet를 발견함 API 중에 좀 Response 형태를 다르게 만든게 있어서 수정했다. 전에 정신 놓고 작성한 코드인건지 Service DTO에서 그대로 entity를 반환하는 DTO가 있어서 수정했다. 엄청난 사실...! 계속해서 Response에서 Integer로 보내는 값이 null로 들어오길래, 뭐가 문젤까 하는데 알고보니 Request 객체가 제대로 요청을 받지 못하고..
💋 오늘 공부한 내용 엄청 오랫동안(오전 내내, 오후 2시 정도까지) 삽질해서 결국 private 데이터베이스 연결에 성공했다. 데이터베이스 서버에 docker를 사용해서 도커 위에 MySQL을 설치했다. user를 하나 만들고 모든 권한을 줬다. (우리가 사용할 용) 삽질한 이유는 환경변수를 제대로 세팅하지 못해서였다. 결국 개발 서버에 들어있는 run.sh 스크립트에 직접 java를 실행할 때 들어갈 환경변수를 설정해주면 되었다. 과정에서 깃허브를 사용한 서브 모듈, 젠킨스 내부에 환경변수 등록 등등 많은 방법을 주워들었다. 프론트엔드와 함께 2, 3차 데모데이 동안 만든 API를 모두 연동했다. 3차 데모데이가 되면서 특히 인증 관련해서 일단 Base 64를 발라놓긴 했는데, 관련해서 2차 데모데이..
💋 오늘 공부한 내용 오늘은 개발 서버 데이터베이스를 설정하기로 한 날이기 때문에 아침에 30분 일찍 와서 설정 파일에 대해서 좀 공부했다. 스프링부트 - 민감정보 숨기기 스프링 애플리케이션의 설정 파일 스프링부트 작업환경 분리하기 데이터 접근기술- 테스트를 다시 읽어보았다. 테스트 데이터 in memory 설정에 대해 다시 공부했다. 어제 테스트 방식에 대해서 팀 내에서 드디어 통일을 했다. 맨날 통일하기로 해놓고 자유분방한 테스트 하다가 드디어 통일됨 💋 감정 회고 프론트 감수성이 많아졌다. 그래서 프론트엔드에게 보여줌 라잇이랑 같이 도시락 먹고 선정릉을 산책했다. 근데 진짜 더움... 💋 오늘의 포스팅 https://engineerinsight.tistory.com/150 [우테코] 스탬프크러쉬 서..
💋 오늘 공부한 내용 일요일에 해야했던 코드리뷰를 방 청소로 미룬 바람에 오늘 했다. 대신 방청소는 기가 막히게 되었다. 지난 주부터 작성했던 코드를 모두 머지했다. 이제 조금 찜찜한 이슈들이 남아있긴 하지만, 기능은 모두 완료됨 내 인수테스트 작성하다가, 새로 배운게 좀 있다. 문제가 된 테스트코드는 아래와 같다 @Test void 여러_개의_쿠폰이_있는_경우_ACCUMULATING인_쿠폰만_조회된다() { // given // TODO: Owner에 대한 회원가입 로직이 생기면 요청으로 대체한다. Owner gitchan = ownerRepository.save(GITCHAN); Owner jena = ownerRepository.save(JENA); Long customerId = 전화번호로_임시_..