본문 바로가기

전체 글7

[스프링 핵심 원리 - 기본편] 의존관계 자동 주입 본 게시글은 김영한님의 인프런(Inflean)강의 스프링 핵심원리 - 기본편 강의를 수강하고 공부한 내용을 정리한 글입니다.1. 다양한 의존관계 주입 방법의존관계 주입은 크게 4가지생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입 생성자 주입생성자를 통해 의존관계를 주입받는 방법특징생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다.불변, 필수 의존 관계에 사용private final MemberRepository memberRepository;private final DiscountPolicy discountPolicy;@Autowiredpublic OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discount.. 2025. 7. 20.
[스프링 핵심 원리 - 기본편] 컴포넌트 스캔 본 게시글은 김영한님의 인프런(Inflean)강의 스프링 핵심원리 - 기본편 강의를 수강하고 공부한 내용을 정리한 글입니다.1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기자바 코드의 @Bean이나 XML의 등을 통해 설정 정보에 직접 등록할 스프링 빈을 나열하는 방식의 문제점등록할 빈의 개수가 많아지면 일일이 등록하기 귀찮고, 설정 정보가 커지고, 누락되는 문제가 발생할 수 있음이 문제를 해결하기 위해 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 기능(= 컴포넌트 스캔)과 의존관계 자동으로 주입하는 기능(@Autowired)을 제공함@Configuration@ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, cl.. 2025. 6. 9.
[스프링 핵심 원리 - 기본편] 싱글톤 컨테이너 본 게시글은 김영한님의 인프런(Inflean)강의 스프링 핵심원리 - 기본편 강의를 수강하고 공부한 내용을 정리한 글입니다.1. 웹 애플리케이션과 싱글톤스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생대부분의 스프링 애플리케이션은 웹 애플리케이션이지만, 웹이 아닌 애플리케이션 개발도 얼마든지 가능웹 애플리케이션은 보통 여러 고객이 동시 요청스프링이 없는 순수한 DI 컨테이너는 호출(요청)할 때마다 새로운 객체를 생성함이런 방식을 사용하게 되면 요청 수 만큼 객체가 생성되고 소멸되므로 메모리 낭비가 심해짐해결 방안 = 싱글톤 패턴:해당 객체가 딱 1개만 생성되고, 새로운 요청이 들어오면 해당 객체를 공유하도록 설계 싱글톤 패턴클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패.. 2025. 5. 11.
[모든 개발자를 위한 HTTP 웹 기본 지식] 1. 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜) 본 게시글은 김영한님의 인프런(Inflean)강의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강하고 공부한 내용을 정리한 글입니다.1. 인터넷 통신인터넷에서 컴퓨터 둘은 어떻게 통신할까?만약 , 클라이언트와 서버가 가까이 있으면 케이블로 2PC를 연결하여 통신할 수 있다.하지만, 클라이언트와 서버의 거리가 멀면 그 사이에 있는 인터넷망을 통해서 메시지를 보내야 한다. 클라이언트(요청) 인터넷 서버(응답)클라이언트가 request message를 전송하면 인터넷 망 내부의 수많은 중간 노드(서버)들을 거쳐 서버에 도착한다. 이후 서버에서 요청을 처리하고 응답을 보내는 과정도 동일하게 진행된다.인터넷 망에서 메세지가 도착하는 과정을 제대로 알기위해서는 우선 IP(인터넷 프로토콜)에 대해 학습해야.. 2025. 4. 6.
[김영한의 실전 자바 - 기본편] 1. 클래스와 데이터, 기본형과 참조형 본 게시글은 김영한님의 인프런(Inflean)강의 김영한의 실전 자바 - 기본편 강의를 수강하고 공부한 내용을 정리한 글입니다.1. 클래스가 필요한 이유여러 명의 학생 정보(이름, 나이, 성적)를 저장하고 출력하는 프로그램을 만든다고 가정해보자. 학생 수 가 적을 경우에는 다른 변수를 선언하거나 배열에 저장해 출력할 수 있다. 그러나 학생수가 늘어날 수록 수정해야 할 코드가 많아지고, 데이터를 수정하며 문제가 발생할 가능성이 높다. 따라서 학생이란 개념 안에 이름, 나이, 성적을 함께 관리하는 것이 효율적이다. 이러한 이유로 만들어진 학생이란 개념이 바로 클래스이다.1.1 클래스 도입package class1;public class Student { String name; int age; .. 2025. 3. 7.
[김영한의 실전 자바 입문] - 내용 정리 본 게시글은 김영한님의 인프런(Inflean)강의 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 강의를 수강하고 공부한 내용을 정리한 글입니다.1. 자바 표준 스펙자바 표준 스펙과 구현자바는 표준 스펙과 구현으로 나눌 수 있다.자바 표준 스펙은 이렇게 만들어야 한다는 설계도이자 문서이며 자바 커뮤니티 프로세스(JCP)를 통해 관리된다.여러 회사에서 자바 표준 스펙에 맞추어 실제 작동하는 자바 프로그램을 개발한다.회사 마다 각각 장단점이 있다. 예를 들어 Amazon Corretto는 AWS에 최적화 되어 있다.각 회사들은 대부분 윈도우, MAC, 리눅스 같이 다양한 OS에서 작동하는 버전의 자바도 함께 제공한다.참고 : 다양한 자바 구현에 대해서는 다음 사이트를 참고하자.변경의 용이자바 구현들은 모.. 2025. 2. 2.
[SpringBoot-스프링 입문] 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 1. 프로젝트 환경설정 본 게시글은 김영한님의 인프런(Inflean)강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의를 수강하고 공부한 내용을 정리한 글입니다.1. 프로젝트 생성1-1. IntelliJ IDE 다운로드 및 자바 설치스프링부트가 3.0.x 버전으로 업그레이드 되면서 최소 버전으로 Java 17이 필요하다.IntelliJ IDE 다운로드: https://www.jetbrains.com/ko-kr/idea/JDK-17 다운로드: https://www.oracle.com/kr/java/technologies/downloads/1-2. https://start.spring.io를 사용하여 프로젝트 생성스프링 부트 스타터 사이트를 사용해 스프링 프로젝트를 생성한다.스프링 부트 스타터 사이.. 2024. 12. 25.