백엔드 개발자 반씨

고정 헤더 영역

글 제목

메뉴 레이어

백엔드 개발자 반씨

메뉴 리스트

  • 홈
  • 분류 전체보기 (20)
    • 오룡의 모험 (8)

검색 레이어

백엔드 개발자 반씨

검색 영역

컨텐츠 검색

전체 글

  • [Project] E-Commerce 주문 API 이야기 (1)

    2026.01.01 by bbgiloo

  • [Project] / E-Commerce : 멀티모듈 환경 구성 및 CI/CD 맛보기

    2025.11.24 by bbgiloo

  • [Project] "어데고?!" 프로젝트 Notification_Service 단위 테스트를 작성하려고 했는데 뭔가 이상했다..?

    2025.09.20 by bbgiloo

  • [Spring] Tomcat VS Netty

    2025.08.25 by bbgiloo

  • [Spring] 서블릿? 서블릿 컨테이너?

    2025.08.23 by bbgiloo

  • [Spring] Spring MVC 구조와 기본 동작 순서

    2025.08.23 by bbgiloo

  • [Spring]Blocking, Non-Blocking

    2025.08.22 by bbgiloo

  • [Project] Redis 캐싱전략을 도입하며

    2025.08.05 by bbgiloo

[Project] E-Commerce 주문 API 이야기 (1)

주문 API를 러프하게 구현했습니다.@Transactional fun createOrder(user: User, request: OrderRequest): OrderResponse{ //reqeust의 itemInfo에서 product val productIds: List = request.itemInfoList.map { it.productId } val products = productService.readProductListByProductIdList(productIds) val nowOrder = Order(user = user) //requqest에서 주문수량 뽑기 val quantityByProductId = mu..

카테고리 없음 2026. 1. 1. 01:02

[Project] / E-Commerce : 멀티모듈 환경 구성 및 CI/CD 맛보기

이번에 개인 프로젝트를 새로이 시작하였습니다. 25/11/23우선 이커머스 프로젝트를 진행하려 합니다.목표주요 기능은 (더 추가 될 수도 있지만) 개발 및 Kotlin 학습Security주문재고관리럭키 드로우등 정도로 생각하고 있습니다.코드 아키텍처우선 코드 아키텍처는 멀티모듈 아키텍처를 적용하기로 했습니다. (사실 모노리식으로도 충분하긴 하지만 DDD 연습도 할겸, 의존성의 분리를 완벽하게 차단하고 테스트 하기 용이함으로 채택하였습니다)멀티모듈 세팅을 처음하는건 아니었지만 `Kotlin`를 주언어로 사용하려고 하니까 뭔가 느낌이 달랐습니다.프로젝트 구조는 아래와 같습니다.WorksOut ├── module-api ├── module-auth ├── module-common ├── module-domai..

카테고리 없음 2025. 11. 24. 21:08

[Project] "어데고?!" 프로젝트 Notification_Service 단위 테스트를 작성하려고 했는데 뭔가 이상했다..?

현재 어데고 프로젝트가 끝난지 5개월 정도가 지났다, "어데고?!" 프로젝트에서 중요하게 생각한 부분은 당연 User_Service였다. 그렇기에 User_Service는 진작 단위 테스트, Redis 캐싱을 통한 성능 개선 및 JMeter로 최적화한 부분의 성과를 정리했다.그렇게 포폴을 정리하여 여러군데에 지원을 해봤지만 돌아온건 싸늘한 불합격 통보였다.이번에 지원하고 싶은 회사가 생겨 Notifiacation_Service에서 못다했던 부분을 정리하고 단위 테스트를 하려고 한다.(우대사항에 Netty, 웹소켓 등 경험이 있었음)먼저 우려되는 부분은 NotifiacationService에 있었는데 너무 많은 책임을 가지고 있는건 아닐까였다.이전에 User_Service의 경우 서비스 로직이 UserSe..

카테고리 없음 2025. 9. 20. 01:00

[Spring] Tomcat VS Netty

Tomcat흔히 Spring boot 프로젝트 생성 후 아무것도 하지 않고 빌드를 할 경우 Tomcat 서버가 열린다.Tomcat이란 ?웹 어플리케이션 서버(엄밀히 J2EE 스펙 중 EJB 기술이 적용되지 않기에 WAS는 아님)아파치 톰캣은 비즈니스 로직을 처리할 때 서블릿 관리를 해준다는 점에서 서블릿 컨테이너에 가까움Apache Software Foundation에서 만든 오픈 WAS자바 기반, 서블릿과 JSP를 실행할 수 있도록 지원WAS : J2EE 스펙을 구현한 서버로서 분산 트랜잭션, 보안, 스레드 처리 등의 기능을 처리하는 분산환경에서 사용되는 미들웨어 (즉, 웹 서버 + 웹 컨테이너로 웹 상에서 사용하는 컴포넌트를 올려 사용하는 서버)뇌피셜 ) Tomcat (서블릿 컨테이너) 이를 이용해서..

카테고리 없음 2025. 8. 25. 03:18

[Spring] 서블릿? 서블릿 컨테이너?

서블릿 (Servlet)JAVA로 개발한 웹 애플리케이션을 실행하기 위한 표준 인터페이스/클래스javax.servlet.Servlet (현재는 jakarta.servlet.Servelt) 인터페이스가 표준의 핵심HTTP 요청/응답을 처리할 수 있게 해주는 자바 표준서블릿의 역할클라이언트(브라우저)에서 들어온 요청을 받고 -> 자바 코드로 처리 -> 응답을 돌려주는 역할서블릿은 직접 소켓을 열고 HTTP 파싱하는게 아님 (Tomcat같은 WAS가 해줌)서블릿은 Tomcat이 전달해준 Request / Response 객체를 받아서 처리하는 자바 클래스동작 과정클라이언트가 HTTP 요청을 보냄 (GET / hello)Tomcat Connector가 요청 수신, HTTP 파싱 -> HttpServletReuq..

카테고리 없음 2025. 8. 23. 19:41

[Spring] Spring MVC 구조와 기본 동작 순서

동작 순서클라이언트가 Request요청을 하면 (api 호출?) DispatcherServlet이 우선 요청을 받음 (web.xml url-pattern에 등록된 애들만)DispatcherServlet에서 HandlerMapping에게 보내 요청을 처리할 수 있는 Controller를 찾는다.@RequestMapping, @GetMapping, @PostMapping 등을 통해서 찾음로직 처리 Controller -> Service -> DAO -> DB 그리고 회수DispatcherServlet에 View 이름을 반환ViewResolver를 통해 출력할 View화면을 검색처리 결과를 View에 송신하고, View하면을 클라이언트에 전송여기서 DispatcherServlet은 왜 거치게 될까? 바로 Ha..

카테고리 없음 2025. 8. 23. 17:52

[Spring]Blocking, Non-Blocking

동기(Synchronous) & 비동기(Asynchronous)동기(Synchronus)작업이 끝날 때까지 기다렸다가 다음 작업을 수행하는 방식A 작업이 끝나야 B 작업 시작 가능흐름이 직선적이라 이해하기 쉽지만, 오래걸리는 작업이 있으면 전체가 지연작업의 순서가 보장됨비동기(Asynchronus)작업을 시켜놓고 기다리지 않고 다음 작업을 바로 진행작업이 끝나면 알림 (콜백, 이벤트, Future/Promise 등)으로 결과를순서 보장 X블로킹(Blocking) & 논블로킹(Non-Blocking)호출한 쪽이 "바로 제어권을 돌려받는가?" 에 대한 개념블로킹 (Blocking)함수를 호출하면 결과가 나올 때까지 멈춰서 기다림호출한 스레드는 일을 못하고 그냥 대기 상태논블로킹(Non-Blocking)함수를..

카테고리 없음 2025. 8. 22. 23:11

[Project] Redis 캐싱전략을 도입하며

어데고?! 프로젝트에서 유저 서비스를 맡아 개발하며, 유저 서비스의 유저 데이터는 모든 페이지와 게임 등 많은 서비스에서 공통적으로 필요한 데이터이며 특정 API를 지속적으로 호출하며 유저 서비스의 RDB의 부하 가능성을 인지하였습니다.이를 해결하고자 Redis를 이용한 캐싱과 CQRS 패턴을 적용하여 MongoDB를 추가적으로 사용하여 부하를 막고자 하였습니다.그러나 실제 운영되고 있는 서비스이기 때문에 CQRS 패턴 보다 Redis 캐싱이 비용적으로 합리적으로 판단하여 Redis를 도입하고자 했습니다.(기존에 refresh 토큰을 사용하기 위해 서버에 유저 서비스의 Redis가 설치되어 있었음)1차적으로 백엔드 내부 Feign으로 사용하는 API를 Redis에서 조회하는 것으로 교체하였습니다.캐시 업..

카테고리 없음 2025. 8. 5. 21:53

추가 정보

최신글

페이징

이전
1 2 3
다음
TISTORY 깃
백엔드 개발자 반씨 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바