본문 바로가기

T.I.L. :: Today I Learned/항해99 14기 본과정91

Day 43. 피드백은 참 좋은 것 개발을 하다보면 가장 문제인 것이 나도 모르게 내 코드에 매몰된다는 것이다. 그렇다보니 뭐가 문제인지, 어떤게 잘 되어있는지 알지 못한다. 구현되어있는 코드들이 모두 내 자식같아서 순식간에 없애버리고 그러는게 참 아깝다. 그래서 제3자의 눈으로 나의 코드를 뜯어보아야한다. 오늘은 중간 피드백이 있는 날이었다. 우리는 만족하며 구현해놓은 것들에 아쉬운 점이 몇 가지 있었다. 또 내가 어딘가에서 가져온 코드를 완벽히 이해하지 못하고 있는 것도 알았다. 피드백을 받고 나오니 어질어질했는데 다시 한 번 리뷰해야겠다는 생각을 했다. 피드백을 받고 나와서 erd부터 뜯어고쳤다. 우리가 고민하는 것들이 엔티티를 과하게 나누어 파생된 것들이었다. 그냥 한 컬럼에 null값만 허용해준다면 모든 고민이 싹 사라지는거였다... 2023. 5. 15.
Day 42. 이제 절반 왔다. 멀리 가려면 같이 달릴 친구가 필요하다. 항해에 들어와서 가장 많이 느낀 것이다. 혼자 고민하며 보내는 시간만큼 성장하는 폭보다 같이 고민하며 보내는 시간의 성장이 더 크다. 그리고 사실 진짜 뛰어난 사람이 아니고서야 다 비슷하다. 그래서 각자가 고민하는 포인트가 대부분 비슷하다. 그렇다보니 함께 모여서 원기옥을 모으다보면 훨씬 더 빨리 해결이 된다. 이래서 협업이라는 것이 정말 중요하다고 하는 것 같다. 혼자서만 공부해야하는 상황이었다면 난 벌써 항해 그만두고도 남았을 듯 .. 1. 스터디 운이 좋게도 랜덤으로 만난 팀원들이 전부 열정이 넘치는 사람들이라 좋은 기회가 되어 스터디를 거의 두 달째 하고 있다. 스터디를 하면서 '자바의 정석' 처음으로 다 보았다. 그리고 지금은 또 다른 인강으로 같이 스터.. 2023. 5. 14.
Day 41. 크롤링 하다 머리깨진 썰 이번 프로젝트의 큰 가닥 중의 하나는 데이터 크롤링이다. 영화진흥위원회의 open API 를 사용해서 데이터를 가져올까도 고민했지만 우리가 목표한 왓챠 클론 코딩을 위해서는 크롤링해오는 것이 더 높은 싱크로율을 보여줄거라 생각했다. 또 왓챠만의 평점, 추천작 등 알고리즘을 우리가 알 수 없기 때문에 기본 정보로 가져오려고 했다. 지난 번에는 팀에 크롤링을 할 줄 아는 분이 있어서 파이썬으로 간단히 셀레니움을 사용해 데이터를 가져왔는데 이번엔 자바로 도전해보고 싶었고 스프링 배치와 스케줄러를 사용해서 주기적으로 정보를 업데이트 해보고 싶은 목표가 있었다. 데이터 크롤링을 하기 위해서 사용할 수 있는 라이브러리는 Jsoup 과 Selenium이 있다. 큰 차이로는 Jsoup은 정적 페이지를 파싱할 수 있고 .. 2023. 5. 13.
Day 40. 앗챠 만들기 시작! 오늘부터 클론코딩 시작이다. 이번주까지 가벼운 토이 프로젝트를 끝내면 다음주부터는 이제 실전 프로젝트에 들어가기 때문에 warm-up 하면서 마지막으로 한 번 정리를 하고 넘어갈 필요가 있다고 생각한다. 처음으로 모임을 갖고 아이디어 회의를 했다. 이번에도 역시 프론트엔드의 기준에서 조금이라도 더 많은 기능을 구현을 해볼 수 있는 것을 선택하기로 했다. 백엔드의 구조는 DB 설계만 잘 해주면 어떤 프로젝트여도 문제가 없을 것이라고 느꼈다. 그렇게 회의를 거쳐서 우리는 왓챠를 클론코딩 하기로 했다. (뭔가를 많이 놓칠 예정이라 이름은 앗챠..!) ER 다이어그램을 이렇게 구성해보았는데, 지난번 프로젝트보다 엔티티만 방대해졌다. 아무래도 이번 기회에 연관관계에 대해 제대로 배우고 넘어가야지 싶다. 계속해서 .. 2023. 5. 12.
Day 39. 미니 프로젝트를 성공적으로 끝내다! https://youtu.be/dqBlUCRxxps 일주일을 갈아넣은 결과물 ⭐⭐⭐⭐⭐ 백엔드 & 프론트엔드가 협력이 잘 되어서 이 정도의 결과물을 낼 수 있었다고 생각한다. 이번 프로젝트를 진행하면서 개인적으로 아쉬웠던 것은 '미니' 프로젝트 였다는 것이다. 좀 더 많은 기능을 구현했으면 좋았을텐데..하는 아쉬움이 진하게 남는다. 우리 팀은 손발도 척척 맞았고 분위기가 정말 좋았다. 팀의 밸런스도 잘 맞아서 이 팀 그대로 실전 프로젝트도 같이 하고 싶은 마음이었다. 다음에 기회가 되면 또 다른 프로젝트를 사이드로 진행해보자고 약속했다. (그 약속이 꼭 꼭 지켜지길 바란다!) 1. 기본 CRUD 와인에 리뷰를 달면서 기본적인 CRUD를 구현했다. 마이페이지에 들어가면 내가 쓴 글들을 일괄적으로 처리할 수.. 2023. 5. 11.
Day38. 테스트 코드..... 테스트 코드....... 아 진짜 나도 테스트 코드 잘 짜고 싶다. 이거 어떻게 해야 잘 구현할 수 있는거지..? 생각으로는 흐름이 잡히는데 구현이 쉽지 않다. 아무리 많은 레퍼런스를 찾아보아도 갈피를 잡지 못하겠다. 어떻게 구현을 하긴 했고 성공을 하긴 했는데 팀원들과 계속해서 "이게 맞나..?"라는 생각을 버릴 수 없었다. 중복되는 코드도 너무 많았고 실패 케이스를 구현하는 것도 너무 힘들었다. 예를들어, 로그인 성공 테스트를 한다고 하면 먼저 user 객체를 만들어주고 loginDto를 만들어서 service단에 있는 login메소드를 사용한다. 그럼 내부 로직에 의해 토큰까지 생성이 되어 반환값이 나와주어야하는데, 무슨 이유에서인지 토큰 생성이 되지 않았다. 계속해서 null값을 뱉었다. 결국은 login메서드도 사용하고.. 2023. 5. 10.
320x100