분류 전체보기

    TCP/UDP

    TCP/UDP

    원티드 프리온보딩 챌린지 백엔드 코드 사전과제 2번 어제의 포스팅에 이어 원티드 프리온보딩 챌린지 백엔드 코드 사전과제 2번 문항에 대해서 포스팅해보고자 한다. TCP와 UDP의 차이를 작성해주세요. 차이점은 물론 TCP와 UDP가 무엇인지 조차 모르고 있었다. 이번 기회에 둘의 개념부터 공통점, 차이점까지 한 번 정리해보려한다. TCP / UDP TCP와 UDP 모두 전송계층(Transport Layer)에서 사용되는 프로토콜이다. 전송계층이란 EndPoint(ex, 클라이언트와 서버) 간의 신뢰성 있는 데이터 전송을 담당하는 계층을 의미한다. 신뢰성 - 데이터를 순차적, 안정적으로 전달하는 것 전송 - 포트 번호에 해당하는 프로세스에 데이터를 전달하는 것 TCP와 UDP 모두 포트 번호를 이용하여 주..

    실전프로젝트 6주차(평균 가격 호출 메서드 리팩터링 feat.Spring Cache + Scheduler)

    실전프로젝트 6주차(평균 가격 호출 메서드 리팩터링 feat.Spring Cache + Scheduler)

    평균 가격 호출 메서드 리팩터링 중간발표 당시 멘토님께서 기존 로직에 대해서 피드백을 주셨던 부분이 있었다. 바로 상품 상세페이지 내 차트용 평균 가격을 불러오는 부분이었다. 오늘은 해당 파트에 대한 리팩터링 과정을 개발 로그로 기록해보고자 한다. 멍냥마켓에서는 기존 중고거래 사이트들과의 차별화된 요소로 상품 상세페이지 내에서 해당 상품의 구매 당시 가격, 판매 희망 가격 그리고 현재 멍냥마켓 내 같은 상품 카테고리로 등록되어있는 상품들의 평균 가격을 보여주고 있다. 멘토님께서 지적해주신 부분이 바로 이 평균 가격을 불러오는 로직이었는데, 기존에는 사용자가 상세 페이지에 접근할 때 마다 DB 내 해당 상품과 동일한 상품 카테고리로 등록된 상품들의 평균 가격을 매번 계산하게끔 구현하였었다. 하지만 이럴 경..

    20220925_WIL(실전프로젝트 5주차 회고)

    20220925_WIL(실전프로젝트 5주차 회고)

    20220925_WIL(실전프로젝트 5주 차 회고) 들어가며 처음 항해99에 합류하였을 때는 내가 과연 수료할 수 있을까 의문이었지만 이제 수료까지 대략 3주밖에 남지 않았으며 최종 발표까지는 2주조차 남지 않았다. 오늘은 다른 개념 정리보다는 지금까지 실전 프로젝트를 진행하며 어떤 것들은 해왔고 남은 기간 동안 어떤 것들을 진행해야 하는지 정리해보고자 한다. 프로젝트 - 멍냥마켓 이전에도 언급했던 바와 같이 최종 프로젝트에서 우리 조는 반려동물 용품 중고거래 서비스를 개발하기로 하였다. 그중 내가 담당했던 파트는 대략적으로 다음과 같다. 메인 페이지 상세페이지(댓글 제외) 마이페이지 검색 처음 프로젝트를 계획하고 검색 메서드들을 제외하고는 이전까지 해왔던 부분들(게시글 CRUD)과 크게 다를 것 없다는..

    실전프로젝트 5주차(Query 메서드 리팩터링 feat.QueryDSL)

    실전프로젝트 5주차(Query 메서드 리팩터링 feat.QueryDSL)

    Query 메서드 리팩터링 지난 토요일 중간발표를 통해 나의 현 위치를 인지할 수 있었다. 어찌어찌 기능 구현은 가능하지만 그 기능이 어떻게 구현된 것인지, 정확히 어떤 기술들을 사용하여 기능을 구현한 것인지에 대한 명확한 설명이 불가하였다. 특히 기존에 작성한 코드의 경우 JPA, JPQL, Native Query 등을 무분별하게 혼재하여 사용하였는데 이렇게 했을 때 어떠한 문제가 발생하는지, 어떠한 이점이 있는지 조차 모르고 있었다. JPA, JPQL은 지난 WIL을 통해 정리해두었다. 다행히 중간발표를 거치며 나의 무지를 깨달을 수 있었고 이번 기회에 기존 작성하였던 Query 메서드들을 검토하고 리팩터링 하는 시간을 가져보고자 한다. 그간 무지하여 NativeQuery가 무조건 좋다고 알고 있었지..

    20220918_WIL(실전 프로젝트 중간발표 회고)

    20220918_WIL(실전 프로젝트 중간발표 회고)

    20220918_WIL 들어가며 어제는 실전 프로젝트 중간발표가 있었다. 각 조별로 MVP를 발표하고 튜터님들께 기술적 피드백과 더불어 모의면접 형태의 질문들을 받아보는 시간이었다. 내가 발표자가 아니라는 안일한 생각으로 특별한 준비 없이 발표장으로 들어갔으나 튜터님의 매서운 질문에 정신이 멍해지는 시간이었다. 금번 WIL은 중간발표 당시 제대로 답변하지 못했던 멘토님의 질문들을 다시 한번 정리하고 스스로의 현 위치를 점검해보는 시간을 가져보고자 한다. 실전 프로젝트 중간발표 CS 질문 정리 JPA(Java persistance API) Java 진영에서 사용하는 ORM(Object - Relational Mapping) 기술 표준으로 사용되는 인터페이스 모음 (ORM - 객체와 DB data를 자동으로..

    20220909_실전 프로젝트 14일차(최근 조회한 상품 목록)

    20220909_실전 프로젝트 14일차(최근 조회한 상품 목록)

    최근 조회한 상품 호출 API 개발 로그 정기 회의를 진행하다 디자이너 팀원분이신 명현님께서 임시로 짜놓으신 마이페이지 와이어프레임을 보니 '최근 본 상품'이라는 버튼이 있었다. 기존에 협의된 기능은 아니었지만 관련 레퍼런스(쇼핑몰 서비스 등)을 참고하였을 때 필요한 기능인듯하여 추가해보았다고 하셨다. 나도 해당 기능이 우리 서비스에 있어 유익한 기능이라는 생각이 들었고 개발에 들어갔다. 단일 상품 조회 API(ItemController) 우선 상품(게시글)을 조회했을 때 해당 상품을 조회했다는 기록을 남길 무언가가 필요했다. 방법에 대해 고민하던 와중 쿠키의 존재가 떠올랐다. 쿠키라면 생성도 어렵지 않을 뿐더러 일정 시간이 지났을 때 만료되게끔 설정할 수도 있었다. 더불어 특정 상품을 조회했다는 기록자..

    20220909_실전 프로젝트 14일차(Swagger 도입)

    20220909_실전 프로젝트 14일차(Swagger 도입)

    실전 프로젝트 트러블 슈팅🚀 실전 프로젝트를 진행하며 디자이너님 그리고 FE분들과의 원활한 소통을 위하여 Swagger를 도입, 적용해보았다. 추후 트러블슈팅으로 사용할 수 있을 것이라 판단되어 기록해두고자 한다. Swagger의 도입 문제상황 처음에는 노션 팀 페이지를 통하여 API 명세서를 작성, 이용하고 있었습니다. 하지만 프로젝트를 진행할수록 아래와 같은 문제가 발생하기 시작하였습니다. API 명세서의 가독성 저하 개발해나가는 API의 양이 점차 증가함에 따라 명세서에 기록되는 API들도 많아졌고 주고 받는 데이터도 증가, 복잡해짐으로 API 명세서 자체의 가독성이 저하되는 문제가 발생하였습니다. 의사소통 문제 FE, BE 개발자 모두 API 명세서와 관련하여 소통에 많은 시간을 할애하게 되었습니..

    20220904_WIL(실전 프로젝트 2주차 회고 및 Pageable 사용법 정리)

    20220904_WIL(실전 프로젝트 2주차 회고 및 Pageable 사용법 정리)

    20220904_WIL 들어가며 오늘로 실전 프로젝트 9일차, 전주 금요일에 발제하여 주차로는 2주차가 지나가고있다. 오늘은 실전 프로젝트 2주차에 대한 회고와 더불어 가장 최근에 도입했던 Pageable 사용법에 대하여 정리해보고자 한다. Pageable Pageable은 Spring framework에서 제공하는 내장 인터페이스로서 Pagination(직역하자면 쪽수 매기기)을 위하여 요청하는 정보를 page(말 그대로 페이지, 0부터 시작한다.)와 size(한 페이지 당 넘겨줄 정보 단위)로 끊어주는 기능이다. Pageable로 인하여 spring에서는 이러한 Pagination을 위한 밑작업을 정말 간단하게 구현할 수 있었다. 내가 기존 작성했던 전체 상품(게시글) 조회 Method가 Pageab..