It 12

[Cloud] - AI Cloud 트랙 2일차 - 쿠버네티스(Kubernetes) 실습편

이전편에서 컨테이너부터 쿠버네티스까지 이론 개념들을 정리해보았다.이번에는 실제로 AWS의 EKS를 이용해 쿠버네티스를 구축해보는 실습 과정을 정리해보겠다. AWS에서는 쿠버네티스를 다음과 같이 정리하고 있다.쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼.쿠버네티스의 궁극적 목표는 현재 상태(current state)가 원하는 상태(desired state)가 되도록 관리하는 것Control Plane (워커 노드와 클러스터 내 파드를 관리하고 제어하는 부분 (Master Node))Data Plane (워커 노드들로 구성) Amazon EKSAmazon EKS는 쿠버네티스를 쉽게 실행할 수 있는 관리형 서비스로 쿠버네티스를 한 번에 만들어,Cont..

Cloud 2025.12.24

[Cloud] - AI Cloud 트랙 2일차 - 쿠버네티스(Kubernetes) 이론편

오늘은 쿠버네티스 구축한 내용을 정리해보겠다.가장 기본적인 쿠버네티스를 이용한 배포 방식을 이론과 함께 실습해보았다. 쿠버네티스는 쉽게 말해 방대한 컨테이너들의 컨트롤러라고 보면 된다.쿠버네티스를 알기 위해서는 컨테이너를 우선 알아야한다. 1차 : 이론 (컨테이너 ~ 쿠버네티스)컨테이너란?컨테이너란 가상화된 운영체제 위에서 어플리케이션을 독립적인 실행에 필요한 파일을 모은 패키지를 말한다.정의를 쉽게 해석하면 컨테이너는 "프로그램 + 실행에 필요한 모든 것을 한 상자에 담아 놓은 것"으로 아래의 것들이 포함되어 있다.애플리케이션 코드 (Flask, Spring 등)실행 환경 (Java, Python, Node)라이브러리 / 의존성설정값실행 명령Virtual Machine과 어떤 차이가 있는 걸까? 핵심은..

Cloud 2025.12.23

[코드 리뷰] - DDD 아키텍처 VS Feature First 아키텍처

" 내가 리뷰한 코드는 현재 총학생회 산하 기구인 IT지원위원회에서의 프로젝트에 대한 경험 내용이다.올해 9월부터 IT지원위원회 소속이 되면서 총학생회 벡엔드 홈페이지에 대한 래거시 코드에 대한 리팩토링 역할을 담당했다.지금까지 내가 참여했던 프로젝트들은 모두 Feature First 아키텍처였었다. 그런데 아지위(IT지원위원회)에서는 DDD 아키텍처를 사용하고 있었다. 나는 듣기만 했었던 DDD 아키텍처를 처음 경험했고 어떤 구조가 더 나은 구조인가를 고민해보았다."[DDD 아키텍처의 나의 소감]DDD구조를 처음 마주쳤을 때는 번거로움이 느껴졌다. 우선 구조는 다음과 같았다. 최상위 디렉토리는 [application], [domain], [global], [infra]로 구성되어 있었다.applicat..

카테고리 없음 2025.11.15

[코드 리뷰] - 배운 점 (프로젝트 전반에 걸치 n+1 문제 해결)

"내가 맡은 부분은 프로젝트 전반에 걸쳐 고질적인 문제인 N puls 1 문제를 해결하는 것이었다.N +1 문제는 크게 2가지로 나눌 수 있다,첫 번째는, Lazy fetch에 의한 N+1이고.두 번째는, 루프에 의한 반복접근 N+1문제이다." [개선 사항]1. 우선 Lazy Fetch에 대한 문제를 우선적으로 해결했다.- 프로젝트 엔티티 내에 fetch 전략이 EAGER로 된 경우들이 있었기 때문에 LAZY 전략으로 바꿔주었다.- 그 다음 레포지토리가 사용된 메소드를 하나씩 확인해서 fetch join이 필요한 필드들을 확인하였다.- 필요한 필드들에 대해서는 여러 방법들이 존재했다. 1) 아주 간단하게 @EntityGraph사용하기 - 해당 프로젝트에 내가 적용한 방법으로 확장성을 고려해 우선 En..

카테고리 없음 2025.09.10

[ 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