반응형
목록
분류 전체보기 (292)
[꼼꼼한 개발자] 꼼코더
🚀 서비스 분류 먼저 서비스 분류다. 맨 처음에 UserSerivce 한 곳에만 개발을 했어도 별 문제가 없었다. 하지만 이제 메타 데이터, 데이터 매칭 등 여러 가지 성격을 가진 기능들이 나타나니 나의 코드는 혼잡해졌었다. 보이는가? 닉네임으로 유저 정보 조회 고유 식별자로 유저 정보 조회 유저의 데이터 매칭 전 경기별 최고 티어 정보 리스트 조회 유저 데이터와 피파 데이터 매칭(경기 종류, 티어) 유저의 데이터 매칭 후 경기별 최고 티어의 데이터 정보 조회 위 모든 기능이 UserSerivce 한 곳에 작성했었다. 메서드만 7개니 구현체 코드는 안 보여줘도 얼마나 복잡한지 알 거라 믿는다. 👀 어떻게 분류할 거야? 아무튼 이러한 복잡한 코드 구성은 [개발, 수정, 리뷰]등을 하기에 최악이었다. 그렇게..
📑 개발할 기능 순서(이전 글 내용 요약) 유저 고유 식별자로 역대 최고 등급 조회 피파의 메타 데이터 조회 (매치 종류, 등급 식별자) 유저의 matchType(경기 종류), division(최고 티어)의 식별 번호들을 피파 메타 데이터와 매칭시켜 값을 추출 추출한 데이터를 경기당 1개의 객체(DTO)로 변환 후 리스트로(감독, 공식) 모아서 화면에 표현 💻 기능 개발 전 DTO 작성 먼저 보면 API 결과 값이 보인다. 이 뜻은 곧 내가 만들어야 할 DTO의 인터페이스라고 할 수 있다. DTO의 필요성은 간단하게 설명하자면(추후 개별 글 작성) DTO 객체를 사용함으로써 클라이언트에게 필요한 정보만 전송할 수 있다. 3가지의 DTO를 작성해 보자. (DivisionDTO, MatchTypeDTO, U..
💻 다음 개발예정 기능 현재 지금까지 [유저 닉네임으로 유저 정보 조회], [유저 고유 식별자로 유저 정보 조회]를 개발했다 다음은 아래에 있는 [유저 고유 식별자로 역대 최고 등급 조회]를 개발해 보자. 접속해 보니 [https://api.nexon.co.kr/fifaonline4/v1.0/users/{accessid}/maxdivision]로 요청하면 결과를 얻어온다고 확인된다. 그렇다면 accessid를 넣어서 요청 테스트 후 결과 값을 확인해 본다. 응답 결과로 matchType(경기 종류), division(최고 티어), achievementDate(달성 날짜)가 반환되는 걸 확인할 수 있다. 하지만 여기서 더 확인할 게 있다. 설명 부분에 보면 (/metadata/??? API 참고)가 보인다..
😧 이전 상황 이전에 상품 엔티티를 만들고 상품 생성(Create)까지 개발을 마쳤었다. 하지만 이후 진행과정에서 교재를 참고해서 하다 보니 개발 속도에 많은 지연이 있었고 팀원과 회의 끝에 구글링을 통해서 빠르게 진행해보기로 했다 '단 모든 코드를 잘 이해하고 넘어가는 것'을 가장 중요하게 이야기 했었다. 왜냐하면 당연히 그 코드를 이해해야 내 것이 되고 앞으로의 프로젝트에서 응용이 가능하기 때문이다 이 것이 클론코딩, 복+붙 (코드 긁어오기)에 대한 주의점이다. (코드 수정 시작) 🧑🏻💻 엔티티, DTO (코드 수정) 엔티티와 DTO( + FormDTO)를 수정하였다. /** * @version 1.0 * @Author seodong-geun * @since 2023/04/10 */ @Entity ..
🧹 간단 정리 Integer : null 값 가능 int : null 값 불가능 👀 어떨 때 사용할까? 둘의 차이점은? Integer는 null을 허용하는 참조형이기 때문에 null값이 가능하다. 반면 int는 기본형(primitive type)으로 null값을 허용하지 않는다. 따라서 null 값이 발생할 수 있는 경우에는 Integer와 같은 참조형을 사용하고 그렇지 않은 경우에는 int와 같은 기본형을 사용하는 것이 좋다.
📦 패키지 생성과 설정 (상품) Product 패키지를 생성 후 그 안에 필요한 패키지부터 만들어 보았다. [controller, domain, dto, repository, service] 추가로 jpa, Hibernate를 사용하기 위한 설정 코드도 작성해 준다. # Hibernate 로그 레벨 설정 logging.level.org.hibernate=info # SQL 쿼리 보기 설정 spring.jpa.properties.hibernate.show_sql=true # SQL 쿼리 포맷팅 설정(가독성 향상 *들여쓰기) spring.jpa.properties.hibernate.format_sql=true # SQL 코멘트 사용 설정 (주석) spring.jpa.properties.hibernate.us..
⚙️ 준비 우선 이런 프로젝트는 구조 규모가 어느 정도 있다 판단하여 ERD 구조를 그리고 시작하려고 했다 하지만 1일 내내 붙잡고 해본 결과.. 아직 경험이 없는 우리에게 너무 버거운 작업이었다. 회원 권한 별로 기능을 구분 지을 것도 아직 가능성이 모호하고, 상품이 어떻게 등록되고, 회원이 어떻게 저장되고 아직은 조금 서툴고 어려웠다. 따라서 결론적으로 정말 야생형처럼 맨땅에 개발하듯 주요 기능부터 구현해서 결합하기로 했다. 🧺 기능 분배 우선 주요 도메인을 회원, 상품으로 생각하고 (게시판은 추후에) 나 > 상품, 팀원 > 회원을 맡게 되었다. 🧑🏻💻개발 준비 그렇게 팀원 친구가 깃을 개설했다. 깃허브에 [main, sub, 나, 팀원]으로 원격 브랜치를 생성하였고 나 > 나, 팀원 > 팀원으로 ..
🤝 계기(제안하기) 개인 프로젝트(피파온라인)를 진행하던 도중 이전 '카메라 방명록'에서 게시판 기능을 맡았던 백엔드 친구에게 팀 프로젝트를 제안했다. 그 친구는 흔쾌히 수락하였고 우리는 팀을 결성했다. 🫨 주제 우리는 어디에 베포, 출품이 목적이 아닌 '포트폴리오'가 목적이다. 물론 일반적인 대학 졸업생의 '포트폴리오' 기준치를 모르니 퀄리티를 보장할 수 없지만 그래도 백엔드 기능을 많이 접해 볼 수 있는 주제였으면 했다. 따라서 회의 끝에 쇼핑몰을 만들어 보기로 했다. 😆 기대하는 것 1. 스프링 부트로 게시판 기능, 상품 기능, 회원 기능을 구현하는 것 2.OOP 원칙을 최대한 잘 지키며 개발하는 것 3. (가능하다면) JWT와 권한에 따라 회원을 구분 짓고 기능을 구분하는 것. 위 3가지를 기대하..