전체 글
-
[CI/CD] Docker / 컨테이너(Container) / 이미지(Image)CICD 2025. 4. 2. 21:53
✅ Docker를 쓰는 이유?"이식성" 때문에 사용한다.📕 이식성이란? 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성 ✅ Docker 사용시 장점?매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다. ➕ IP와 Port의 개념IP : 네트워크 상에서의 특정 컴퓨터를 가리키는 주소 (ex) 13.250.15.132 )Port : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소 ( ex) 13.250.15.132:3000 에서 :3000 부분이 포트 번호를 의미) ➕ 브라우저 창에 포트 ..
-
[CS/Spring] Spring Bean Scope / Spring의 스코프 프로토 타입 빈CS/Spring 2025. 3. 26. 15:50
• Spring Bean ScopeBean Scope는 Bean이 존재할 수 있는 범위를 뜻하며, 종류로는 싱글톤 / 프로토타입 / request / session / application 등이 있습니다. • Spring Bean Scope 종류singleton : 싱글톤은 기본 스코프로 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프입니다. prototype : 프로토타입은 Bean의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프입니다. request : 웹 요청이 들어오고 나갈때까지 유지하는 스코프입니다. session : 웹 세션이 생성, 종료할때까지 유지하는 스코프입니다. application : 웹 서블릿 컨텍스트와 같은 범위로 유지하는 ..
-
[CS/Programming] RESTful API / RESTful하게 API를 디자인 한다는 것CS 2025. 3. 14. 20:21
• RESTful API RESTful API는 HTTP 통신을 REST 설계 규칙을 잘 지켜서 개발한 API를 RESTful한 API라고 합니다. REST 설계 규칙은 URI는 정보의 자원만 표현해야 하며, 자원의 상태와 행위는 HTTP Method에 명시하는 걸 말합니다. • RESTful하게 API를 디자인한다는 것 RESTful하게 디자인한다는 것은 URI를 규칙에 맞게 잘 설계했는지의 여부입니다. 1. 리소스와 행위를 명시적이고 직관적으로 분리합니다. 리소스는 URI로 표현되는데 리소스가 가리키는 것은 명사로 표현되어야 합니다. 행위는 HTTP Method로 표현하고, GET / POST / PUT / DELETE / PATCH 를 분명한 목적으로 사용합니다. 2. Message는 He..
-
[CS/Spring] JPA / JPA N + 1 문제와 해결 방법CS/Spring 2025. 3. 13. 20:17
• JPA란? 자바 어플리케이션에서 관계형 데이터베이스를 객체 지향적으로 다룰수 있도록 하는 ORM 기술입니다. 📚 ORM ? '객체로 연결을 해준다' 라는 의미로, 어플리케이션과 데이터베이스 연결시 SQL 언어가 아닌 어플리케이션 개발 언어로 데이터베이스를 접근할 수 있게 해주는 툴 • JPA 장점 및 사용하는 이유 SQL을 직접 작성하지 않아도 되서 개발 비용이 줄어듭니다. 코드 가독성, 유지보수성, 재사용성이 좋아집니다. JPA를 사용하면 비즈니스 로직이 RDBMS에 의존하는 것이 아니라, 자바 코드로 표현될 수 있기 때문에 생산성이 높아집니다. • JPA N+1 문제가 발생하는 이유와 해결 방안 N+1이란 1번의 쿼리를 날렸을 때 의도하지 않은 N번의 쿼리가 추가적으로 실행되..
-
[CS/Spring] Spring Bean / Spring Bean 등록 방법 / Spring Bean 생명주기CS/Spring 2025. 3. 12. 20:24
• Spring BeanIoC 컨테이너 안에 들어있는 객체로, 필요할 때 IoC 컨테이너에서 가져와서 사용합니다. • Spring Bean 등록 방법 1. XML 설정 방법 2. 자바 기반 설정 방법설정 클래스를 따로 만들어 @Configuration 어노테이션을 붙이고, 해당 클래스 안에서 빈으로 등록할 메소드를 만들어 @Bean 어노테이션을 붙여주면 자동으로 해당 타입의 빈 객체가 생성됩니다. @Configuration public class AppConfig { @Bean public MyBean myBean() { return new MyBean(); } } 3. @Component 어노테이션을 사용하는 방법@Controller, ..
-
[CS/Spring] Spring MVC / MVC의 요청 흐름 처리 방식 / Dispatcher Servlet / Handler Mapping / View ResolverCS/Spring 2025. 3. 11. 18:36
• Spring MVCMVC는 Model, View, Controller의 약자이며, 각 레이어간 기능을 구분하는데 중점을 둔 디자인 패턴입니다. Model은 데이터 관리 및 비즈니스 로직을 처리하는 부분이며, (DAO, DTO, Service 등) View는 비즈니스 로직의 처리 결과를 통해 유저 인터페이스가 표현되는 구간입니다. (html, jsp, tymeleaf, mustache 등 화면을 구성하기도 하고, Rest API로 서버가 구현된다면 json 응답으로 구성되기도 합니다.)Controller는 사용자의 요청을 처리하고 Model과 View를 중개하는 역할을 합니다. Model과 View는 서로 연결되어 있지 않기 때문에 Controller가 사이에서 통신 매체가 되어줍니다. • MV..
-
[CS/Spring] Spring Framework / Spring Boot와 Spring Framework의 차이 / 제어의 역전(IoC) / 의존성 주입(DI)CS/Spring 2025. 3. 1. 13:58
• Spring Framework 스프링 프레임워크는 자바 개발을 편리하게 해주는 오픈소스 프레임워크입니다. 경량 컨테이너로서 자바 객체를 직접 관리 : 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있습니다. 제어의 역전(IoC)이라는 기술을 통해 어플리케이션의 느슨한 결합을 도모 : 컨트롤의 제어권이 사용자가 아닌 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출합니다. 의존성 주입(DI, Dependency Injection)을 지원 : 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜 줍니다. 관점 지향 프로그래밍(AOP, Aspect-Oriented Programming)을 지원 : 트랜잭션이나 로깅,..
-
[CS/Network] OSI 7 LayerCS/네트워크 2025. 2. 28. 20:09
• OSI 7계층7계층(응용 계층) : 사용자에게 통신을 위한 서비스 제공 (인터페이스 역할)6계층(표현 계층) : 데이터의 형식을 정의하는 계층 (코드 간의 번역을 담당)5계층(세션 계층) : 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층4계층(전송 계층) : 최종 수신 프로세스로 데이터의 전송을 담당하는 계층(단위 : 세그먼트) ex) TCP, UDP3계층(네트워크 계층) : 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층(단위 : 패킷) ex) 라우터2계층(데이터링크 계층) : 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층(단위 : 프레임) ex) 이더넷1계층(물리 계층) : 데이터를 전기 신호로 바꾸어 주는 계층(단위 : 비트) ex) 장비 : 케이블, 리피터, 허브 ..