본문 바로가기

dev-log147

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.
Day 37. 이리저리 흔들리기 보다 그냥 내 생각대로 오늘의 첫 번째 이슈, 프론트엔드와 서버를 연결해보았는데 로그인 성공하고 토큰을 헤더에서 꺼내지 못했다. 프론트쪽에서는 대부분의 에러가 '서버 에러'로 처리되어 있어서 서버의 문제인 것처럼 생각을 했는데 이게 로그인을 성공하면 백엔드에서는 헤더에 잘 넣어주고 있었다. 문제는 서로가 사용하는 변수명이 달랐다. 그래서 API 명세서가 정말 중요하구나, 그리고 협업을 하기 전에 변수명을 미리 정해야하는구나 라는 것을 알았다. 그리고 api 명세에 쓰는 url 주소가 실제 홈페이지에 쓰이는 것이 아니고 그냥 서버 url이었다!! 아무튼 변수명을 서로 맞추고 config 설정도 바꿔주었다. config.addExposedHeader(JwtUtil.ACCESS_KEY); 이렇게! 그러니까 정상적으로 헤더에서 토큰을.. 2023. 5. 9.
320x100