본문 바로가기

분류 전체보기54

티스토리 초기 설정 모음 안녕하세요. 티스토리를 관리하며 참고한 블로그들을 모아두었습니다. 티스토리 스킨 추천 티스토리 스킨을 고민하며 참고한 블로그입니다. 저는 북클럽으로 설정하였습니다. https://naro-stand.tistory.com/40 티스토리 무료스킨 5가지 추천 티스토리 블로그를 개설했다면 바로 다음 할 일은 스킨을 변경하는 것이다. 티스토리는 여러 기본 스킨들을 갖고 있고, 사람들이 자기 입맛에 맞게 바꿔 만들어 무료로 나눔하는 스킨들도 많다. naro-stand.tistory.com 코드 블럭 설정 코드 블럭을 게시글에서 보면 깔끔하지가 않아서 설정하기 위해서 참고하였습니다. 아래 사진처럼 설정됩니다! https://jee-young.tistory.com/11 티스토리 코드블럭 커스터마이징, 폰트 변경방법 .. 2022. 1. 7.
6-1. 컴포넌트 스캔 설정 정보 클래스에서 객체를 만들어 의존 관계를 주입하는 것보다 간단한 방법이 없을까요? 안녕하세요. 오늘은 컴포넌트 스캔에 대해 알아보겠습니다. 앞서 스프링 빈을 등록하기 위해서 설정 정보 클래스를 만들고, 싱글톤을 보장하기 위해 @Configuration을 붙이며, method 위에는 @Bean을 붙인다는 것을 학습하였습니다. 공부를 위해 간단한 코드를 작성할 때는 설정 정보 클래스를 만들어서 의존 관계를 직접 주입할 수 있지만, 서비스가 커지면 하나하나 의존 관계를 주입해주고 관리하기 어려울 것입니다. 게다가 빈 객체를 만들기 위해 객체 생성 메소드 위에 @bean을 각각 붙여줘야 하는데, 붙여주는 것도 귀찮습니다. 따라서 설정 정보 클래스를 간소화하고, 의존 관계를 자동으로 주입하는 방법을 알아보.. 2022. 1. 7.
5-2. 싱글톤 방식의 주의점: stateless로 설계하기 싱글톤 방식을 사용할 때 주의점이 있나요? 안녕하세요. 싱글톤 컨테이너를 배우면서, 중요한 주의점을 학습하였습니다. 싱글톤 방식을 잘못 사용하면 실무에서 커다란 문제를 만들 수 있습니다! 실제로 몇 년에 한 번씩은 정말 해결하기 어려운 큰 문제가 터진다고 합니다. 싱글톤 방식의 잘못된 사용은 바로 'stateful(상태유지)'입니다. 싱글톤 객체 인스턴스에 특정 상태를 유지하면 안 됩니다. 여러 사용자가 같은 싱글톤 인스턴스에 접근하기 때문에, 특정 클라이언트에 의존적인 필드가 있으면 안 됩니다. 싱글톤 객체는 가능하면 읽기만 가능해야 하고, 값을 수정하면 안 됩니다. 이처럼 특정 상태를 유지하지 않는 것이 stateless(무상태)입니다. 싱글톤 방식을 사용하려면 stateless를 보장해야 합니다. .. 2022. 1. 7.
5-1. 싱글톤 컨테이너 + static method @Configuration은 왜 사용하는 것일까요? 안녕하세요. 오늘은 싱글톤 컨테이너에 대해서 알아보겠습니다. 싱글톤 컨테이너를 학습하고, @Configuration 사용 이유를 이해하는 것이 오늘의 목표입니다. 스프링 컨테이너는 싱글톤 컨테이너인데요. 먼저 싱글톤 패턴이 무엇인지 알아봅시다. 싱글톤 패턴 싱글톤 패턴은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴입니다. 객체의 인스턴스가 2개 이상 생성되지 못하도록 막습니다. 싱글톤 패턴을 구현하는 방법에는 여러 가지가 있는데, 여기서는 객체를 미리 생성해두는 방법을 활용해 알아봅시다. 객체의 constructor를 public으로 만들면, 어디서든 객체를 만들 수 있겠죠. 그러나 객체를 한 개만 두고 싶으므로 누구나 만들지 못하.. 2022. 1. 6.
4. 스프링 컨테이너와 스프링 빈 + 람다식, Map 데이터 전체 조회 스프링 컨테이너는 스프링 빈을 어떻게 등록하고 관리할까요? 스프링 빈은 어떻게 꺼낼 수 있을까요? 안녕하세요. 오늘은 '섹션 4. 스프링 컨테이너와 스프링 빈'을 리뷰하겠습니다. 지난 시간에 스프링 컨테이너와 스프링 빈이 무엇인지를 알아보았습니다. 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에 추가적인 기능을 제공하는 역할을 하는 컨테이너입니다[6]. 여기서 말하는 자바 객체를 스프링에서는 빈(Bean)이라고 부릅니다. 스프링 컨테이너는 @Configuration이 붙은 파일을 구성 정보로 사용하고, @Bean이 붙은 메서드를 호출해 반환된 객체를 스프링 컨테이너에 스프링 빈으로 등록합니다. 이번 시간에는 스프링 컨테이너의 생성과 스프링 빈 조회 등을 학습하며 스프링 컨테이너.. 2022. 1. 5.
[Java] Primitive Type/Wrapper Class Long과 long은 무슨 차이가 있을까요? 안녕하세요. 오늘은 Primitive Type과 Wrapper Class에 대해 알아보겠습니다. 스프링을 공부하면서, 회원 객체를 구현한 클래스에서 멤버 변수로 'Long id'를 이용하는 것을 보고 왜 long이 아닌 Long을 이용하는지 궁금해져서 알아보았습니다. 이유를 이해하기 위해서는, 먼저 Primitive Type(기본형), Wrapper Class(래퍼 클래스)가 무엇인지 알아야 합니다. Java에는 변수 타입에는 기본형(Primitive Type)과 참조형(Reference Type)이 있습니다[1]. 기본형 변수는 값을 그대로 저장하고, 참조형 변수는 객체의 레퍼런스를 저장합니다. int a = 3; // 기본형 int b[] = new int.. 2022. 1. 5.
[Java] 상속 extends, implements, abstract 'Parent a = new Child()'에서, a 객체의 타입은 무엇일까요? 안녕하세요. 스프링을 공부하면서 자바 상속을 복습해야겠다는 생각이 들어서 상속에 대한 게시글을 작성합니다. 의문점이 든 부분은 '부모 a = new 자식(); 일 때, a 객체의 타입은 무엇인가?' 였습니다. 답은 자식입니다. 해당 의문점은 코드는 아래 코드에서 시작되었습니다. void findByName(){ MemberService memberService = ac.getBean("memberService",MemberService.class); assertThat(memberService).isInstanceOf(MemberServiceImpl.class); } 두 번째 줄에서, ac.getBean에서 꺼내오는 객체는 .. 2022. 1. 4.
3-2. 스프링 핵심 원리 이해2 - 객체 지향 원리 이용(스프링 컨테이너) + 프레임워크 vs 라이브러리 스프링은 AppConfig를 어떻게 지원할까요? 안녕하세요. 오늘은 '섹션 3. 스프링 핵심 원리 이해 2 - 객체 지향 원리 이용' 중 후반부를 리뷰하겠습니다. 전반부에서 SRP, OCP, DIP를 지키기 위해 AppConfig을 활용하는 것을 살펴보았습니다. 이러한 AppConfig의 역할을 해주는 것이 스프링 컨테이너입니다. 오늘의 핵심은 스프링 컨테이너가 무엇인지 이해하는 것입니다. IoC, DI, 컨테이너 먼저 IoC, DI, 컨테이너가 무엇인지 알아보겠습니다. IoC(Inversion of Control): 제어의 역전 IoC는 객체의 생성부터 소멸까지 객체의 모든 생명주기를 개발자가 아닌 컨테이너가 담당하는 것을 의미합니다[2]. 원래 개발자가 해왔던 일을 컨테이너라는 객체 관리 프로그램이 .. 2022. 1. 3.