반응형
목록
스프링 (53)
[꼼꼼한 개발자] 꼼코더
🧹 간단 정리 의존성 주입 방법을 선택할 땐 중 생성자 주입을 사용하자 생성자 주입은 코드의 유지 보수성과 테스트 용이성을 향상한다. (자세한 내용은 아래 👀) 🧑🏻💻 코드 예제 👉🏻 Setter 방식(생성자 주입 적용 전) public class UserService { private UserRepository userRepository; public void setUserRepository(UserRepository userRepository) { this.userRepository = userRepository; } } 👉🏻 생성자 주입 적용 public class UserService { private final UserRepository userRepository; public UserServ..
📣 주제 TOMCAT, WAS, 웹서버란 무엇인지 간단한 개념 잡기! 📄 내용 🙋🏻♂️ 저번 주 내용 확인결과 아래 내용이 jwt, 세션 중 어느 것의 장점인지 -> JWT 토큰 기반으로 다른 로그인 시스템에 접근 및 권한 공유가 가능하다. (쿠키와 차이) OAuth의 경우 Facebook, Google 등 소셜 계정을 이용하여 다른 웹서비스에서도 로그인을 할 수 있다. 세션의 저장방법이 어떤건지 -> 서버 서버 클라이언트 or 서버 BASE64가 무엇인지 -> 인코딩 방법론중 1가지 JWT의 Claim이 정확히 무엇인지 -> payload의 정보 조각 하나하나를 일컫는다. 빌더에서 compact()가 뭔지 -> 최종 객체 생성 🙋🏻♂️ 추가로 확인할 내용 없다! 👍🏻 느낀 점 시험 기간이라 간단한 ..
🚨 문제 발생 [피파 프로젝트] 개발 도중 이상한 현상이 일어났었다 분명 엔드 매핑 주소(첫 요청 시작 주소)가 'users'로 설정하였는데 'user'로 첫 요청을 하여도 정상적으로 동작한다는 것이었다.. (aaa, bbb, adfdagb로 해도 전부 동일하다) 따라서 코드를 확인해 보았다. 😁 코드 확인(원인 발견) 이상한 점을 눈치챘는가..!?!? 그렇다.. '{}'를 붙여 놓은 것이었다.. 이렇게 되면 '변수'로 인식하여 아무런 단어가 들어와도 처리가 돼버린다.ㅠ 🧑🏻💻 해결 수정하였다.(매우 부끄러워지는 상황 하핳..)
😅 고민 다음 글에서 적어보겠지만 새로 개발 중인 기능이 너무나 복잡한 구성으로 되어있어 도저히 테스트 코드 작성 고민을 피할수가 없게 되었다. 이전 [역대 최고 티어 조회] 기능 개발에 1주일가량 쏟았다. 길지 않을 수 있지만 나는 개발기간을 더 단축하고 싶은 생각에 고민을 하였다. 개발기간이 늘어났던 요인은 메소드 성공 여부 확인, 에러 잡기가 있었다. 이후 개발 후반에 log, 디버깅 등을 사용해서 문제해결에 매우 좋은 경험을 하여 블로그 글 작성 중 문득 '근데 테스트 코드 작성하면 개발시간이 더 빨리 지지 않을까?' 싶었다. 물론 개발시간이 빨라진다는 것은 어불성설일 수 있다. (코드 량이 늘어나니) 하지만 직전 개발 경험을 토대로 말 하자면 우선 메서드 하나씩 테스트하고 결과를 찍어내고 기억하..
🚀 서비스 분류 먼저 서비스 분류다. 맨 처음에 UserSerivce 한 곳에만 개발을 했어도 별 문제가 없었다. 하지만 이제 메타 데이터, 데이터 매칭 등 여러 가지 성격을 가진 기능들이 나타나니 나의 코드는 혼잡해졌었다. 보이는가? 닉네임으로 유저 정보 조회 고유 식별자로 유저 정보 조회 유저의 데이터 매칭 전 경기별 최고 티어 정보 리스트 조회 유저 데이터와 피파 데이터 매칭(경기 종류, 티어) 유저의 데이터 매칭 후 경기별 최고 티어의 데이터 정보 조회 위 모든 기능이 UserSerivce 한 곳에 작성했었다. 메서드만 7개니 구현체 코드는 안 보여줘도 얼마나 복잡한지 알 거라 믿는다. 👀 어떻게 분류할 거야? 아무튼 이러한 복잡한 코드 구성은 [개발, 수정, 리뷰]등을 하기에 최악이었다. 그렇게..
📑 개발할 기능 순서(이전 글 내용 요약) 유저 고유 식별자로 역대 최고 등급 조회 피파의 메타 데이터 조회 (매치 종류, 등급 식별자) 유저의 matchType(경기 종류), division(최고 티어)의 식별 번호들을 피파 메타 데이터와 매칭시켜 값을 추출 추출한 데이터를 경기당 1개의 객체(DTO)로 변환 후 리스트로(감독, 공식) 모아서 화면에 표현 💻 기능 개발 전 DTO 작성 먼저 보면 API 결과 값이 보인다. 이 뜻은 곧 내가 만들어야 할 DTO의 인터페이스라고 할 수 있다. DTO의 필요성은 간단하게 설명하자면(추후 개별 글 작성) DTO 객체를 사용함으로써 클라이언트에게 필요한 정보만 전송할 수 있다. 3가지의 DTO를 작성해 보자. (DivisionDTO, MatchTypeDTO, U..
👍🏻 선택 스프링 부트 교재로 더 공부하기 vs 뭐라도 만들어 보기 나는 경험이 부족했고 이전 [카메라 방명록 프로젝트]에서 느꼈지만 나는 [학자형 보다는 야생형에 가까운 거 같았다] (조금은 가깝다는 것이지 완전한 야생형은 아니다) 따라서 '뭐라도 만들어 보자'로 결정했다. 👀 스펙과 아이디어 주제 나는 현재 스프링 부트, 스프링 정도를 할 줄 안다. 그럼 뭘 만들어 볼까? 게시판..? 회원가입 로직? 나는 좀 더 크게 목표를 가져봤다. 바로 '베포'이다. 따라서 나는 단순 개인 프로젝트 느낌이 아닌 '사용자'가 있었으면 했다. 그렇다면 뭘 만들면 좋을까... 음 나는 뭘 좋아할까? 나는 운동, 악기, 게임 전부 다 좋아한다 그렇게 몇 차례 고민 중 내가 자주 즐겨하는 게임인 '피파 온라인 4'를 떠올..