전체 글 34

[코드 리뷰] 배운 점 (게임 전적 데이터 업데이트를 통해 추천 서비스 설계)

" 내가 리뷰한 코드는 Lol 게임의 상위 티어의 전적을 업데이트하여 상위 티어의 [추천템트리, 추천 시작템, 추천 룬, 추천스킬트리, 추천 신발 등]의 정보를 db에 일괄 저장하여일반 사용자 즉, 저티어 사용자에게 추천해주는 서비스를 구성하는 코드였다. " 우선 코드의 Refactoring과정을 이야기해보겠다. [이전의 코드]Spring Batch를 활용해 배치 서버로 일정 시간(일일 2회, 새벽 시간)에 상위 티어 전적을 업데이트해주는 요청을 보낸다. [이전 코드의 문제점]Spring Scheduler를 사용하면 서버에 대한 부화가 커질 수 있어 안정성에 위험이 있었다. ※Spring Batch는 대량의 데이터를 일괄적으로 처리하는 데 특화되어 있고,※ MQ는 분산 및 비동기 처리를 통해 시스템의..

카테고리 없음 2025.09.05

[충남대학교 - NHN아카데미] Java Backend 개발자 과정 교육생 모집(~6/18)

[충남대학교-NHN아카데미] Java Backend 개발자과정 교육생 모집​1. 모집기간: 2025. 5. 12(월) ~ 6. 18(수)2. 교육기간: 2025. 7. 1(화) ~ 2025. 12. 5(금)3. 교육방법: 오프라인 교육(주 5일, 1일 8시간) 및 실무프로젝트 진행4. 모집절차: 교육과정 신청 후, 코딩테스트 실시 후 최종 합격5. 교육혜택 - 교육비 전액 무료, 지원금 지급(월 30만원, 4개월 지급) - NHN현직자 특강 - 우수 연수생 NHN계열사 및 파트너사 채용 연계 - 우수교육생(상위10%)선정 시, 타 사업 가산점 부여 및 코딩테스트 면제6. 신청 URL - 교육과정 지원: https://www.nhnacademy.com/apply?camp..

카테고리 없음 2025.05.14

[ Spring ] HttpMessageConverter 파헤치기 - 개발 지식

✨사용자로부터 서버는 값을 어떻게 받을 수 있을까?서버는 사용자한테 값을 어떻게 넘길 수 있을까?만약 서버는 LocalDate 클래스로 시간 정보를 받고 싶은데 Client는 LocalDate클래스가 뭔지 모르는데 어떻게 값을 넘겨야 할까? 또는 만약 사용자가 서버에게 User라는 값을 넘기고 싶을 때는 어떻게 해야할까? Spring에서는 이러한 문제를 HttpMessageConverter를 통해 값을 변환해서 각자가 받기 좋은 데이터를 변환을 해줍니다.사용자가 Json형태로 User정보를 넘기면 Spring이 Converter를 통해 서버에게 User객체로 만들어서 전달해줍니다.오늘은 이러한 Converter에 대해서 알아보도록 하겠습니다! ✨목차01. HttpMessageConverter란? (서버..

Spring 2025.04.18

[ Redis ] 메모리 데이터 베이스 Redis - 개발 지식

오늘은 Redis에 대해서 알아보도록하겠습니다.개발을 하다보면 서버에서 유저 정보를 저장해줘야하는데 어떻게 저장을 해야할까요?저는 서블릿 기반으로 개발할 때는 저장할 곳이 없어서 Session에 사용자 정보를 저장하고Cookie에는 그 SessionID값을 저장해서 로그인 인증 처리를 해주었었습니다.그런데 서버는 하나의 사용자만을 저장하지 않기 때문에 로그인한 사용자 정보를 저장할 데이터베이스가 필요하게 됩니다. 문제는 데이터 베이스는 영속성을 지니고 있는데 로그인 인증은 영속성이 필요 없는 휘발성 데이터입니다.그래서 저희가 사용하는게 바로 메모리 데이터 베이스 Reids입니다. 목차01. REDIS란 무엇일까? 01-1. 사용 방법 예시 정리 01-2. Java에서의 Redis 구현체들02. REDI..

DataBase 2025.04.16

[ Spring ] HandlerMethodArgumentResolver이란? - 개발 지식

스프링을 사용하다 보면 API에 인자값들을 받는 모습을 쉽게 볼 수 있습니다.예를 들어 @RequestBody를 통해 특정 객체를 받는 모습도 볼 수 있습니다.또는 @PathValuable String memberId와 같이 경로의 값을 받는 모습도 볼 수 있습니다.그런데 이런 과정이 Spring에서 어떻게 일어나고 있을까요?이렇게 Argument에 대해 처리하는 것을 바로 ArgumentResolver라고 합니다.오늘은 바로 이 ArgumentResolver에 대해서 알아보도록 하겠습니다. 목차01. HandlerMethodArgumentResolver이란?01-1. 적용 과정 예시02. 적용 과정 정리03. 실제 적용 예시 (Paging 처리)※ 참고 (기본 세팅 되어 있는 ArgumentResolv..

Spring 2025.04.15

[HTTP API 설계] Spring HTTP API란? - 개발 지식

항상 어디서 많이 들어봤던 HTTP API.하지만 정확히 이해하지는 못했었던 HTTP API.오늘은 HTTP API 설계에 대해서 알아보도록 하겠습니다. 목차01. HTTP API02. REST API 란?03. HTTP API vs REST API 차이점 03-1. HTTP vs REST 03-2. HTTP API vs REST API 04. REST API 디자인 04-1. 디자인 해야할 것들! 04-2. URI 디자인 05. HTTP Method 05-1. HTTP Method의 의미 05-2. 추가적인 HTTP Method의 사용법 [참고] 05-3. URI QUERY 디자인 06. 일반적으로 좋은 A..

Spring 2025.04.14

[IOC] 제어 역전의 모든 것 - Spring 지식

B이전 포스팅에서 스프링 프레임 워크에 대해서 소개해보았습니다.이번 시간에는 스프링 프레임 워크의 주요 특징들에 대해서 알아보도록 하겠습니다.스프링 프레임 워크의 주요 특징은 IOC, 제어 역전 / DI, 의존성 주입 / AOP, 관점 지향 프로그래밍 입니다.오늘은 이 세가지 중 IOC, 제어 역전에 대해 알아보도록 하겠습니다. 01. 스프링에서 IOC의 중요성02. Spring IOC의 필요성03. IOC, 제어 역전이란?04. Spring Container란? (IOC의 행동대장?) 04-1. Spring Container 04-2. Bean Factory 04-3. ApplicationContext05. Spring Bean이란? 05-1. 빈등록 방법 2가지 05-2. 스테레오타입 어노테이션 05..

Spring 2025.04.02

[Spring Boot] 스프링 부트란? - 개발 지식

이번에는 스프링 부트에 대해서 공부해보겠습니다. 나는 스프링을 공부하면서 IOC와 DI가 엄청 중요한 개념이라고 생각이 들었다.그런데 이런 개념을 이해하기 위해서는 스프링 부트에 대한 기본적인 이해가 필요하다고 생각했고이번 시간에 스프링 부트에 대해 이해하고 다음 포스팅에서 IOC와 DI에 대해서 정리해보겠다. 01. 스프링 부트란 무엇인가?정의 : 스프링 부트란 스프링의 프레임 워크를 말한다.사실 스프링 프레임 워크 자체는 아닌데 스프링 프레임워크는 장점이 아주 많지만 설정이 복잡하다는 단점이 있었고 이를 해결하고자  자동 설정이라는 큰 강점을 가진 스프링 부트를 만들어낸 것이다.  ※ 프레임워크가 무엇인지 알고가자!  (  프레임워크  VS   라이브러리)프레임 워크 : 여러 라이브러리들을 활용하여 ..

Spring 2025.03.31

[Mockito] 독립적 환경의 테스트 코드 작성 - 개발 경험

들어가기 앞서, 개발에서 중요한 2가지.1. 왜 이렇게 작성했는지를 아는 것 : 개발이라는 것은 비용 대비 효율성이기 때문에 이유가 필요합니다.2. 테스트 코드 : 제대로 잘 동작하는지, 빈틈은 없는지, 오류가 나지 않는지 확인하는게 중요합니다.  ※ 단위 테스트 VS 통합 테스트통합 테스트란 실제 환경에서 실행하여 여러 클래스와 메소드가 정상적으로 잘 작동하는지를 테스트하는 것.단위 테스트란 각각의 클래스와 메소드가 개별적으로(독립적으로) 잘 작동하는지를 테스트 하는 것. (다른 코드와 독립적으로 만드는게 복잡함 -> Mockito를 사용) 01. Mockito란?Mockito란 단위 테스트를 쉽게 작성할 수 있도록 도와주는 Mocking 프레임워크입니다.mock이라는 뜻은 가짜, 가상이라는 뜻인데, ..

카테고리 없음 2025.03.25

[빌드 & 배포] 빌드 파해치기 (with Maven)- 개발 경험

[개요] : 백엔드 개발을 하다 보면 ‘빌드(Build)’, ‘패키징(Packaging)’, ‘배포(Deployment)’ 같은 단어를 많이 듣게 된다. 하지만 처음 접하면 복잡해 보이고, 어디서부터 이해해야 할지 막막할 때가 많다. 이번 글에서는 이러한 개념들을 차근차근 정리하고, 실제로 Maven을 사용해 프로젝트를 빌드하는 방법까지 알아보자.  그런데 우리는 왜 빌드에 대해서 공부해야할까?하나, 실제 서비스를 만들고 운영할 수 있어야 하기 때문이다서비스 개발은 단순 코드 작성에서 끝나는 것이 아니기 때문이다개발한 코드를 사용자에게 잘 전달하는 것도 개발의 하나이기 때문이다.둘, 효율적인 협업을 위해서이다.  서비스 개발은 협업을 통해 진행되는데 빌드 도구를 통해 동일한 환경에서 개발할 수 있기 때문..

카테고리 없음 2025.03.15