전체 글
-
코드로 배우는 스프링부트 웹 프로젝트 Day 2Spring/코드로 배우는 스프링부트 웹 프로젝트 2022. 8. 12. 16:58
/* Annotation 들은 스프링부트 프로젝트의 Annotation 정리 페이지에 따로 정리해두었습니다. */ [Thymeleaf의 기본 사용법] dto 패키지 생성 -> SampleDto 클래스 생성 DTO란? Data Transfer Object계층 간 데이터 교환을 위해 사용하는 객체로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가지는 클래스) DAO란?Data Access Object데이터베이스의 data에 접근하기 위한 객체DataBase에 접근하기 위한 로직과 비지니스 로직을 분리하기 위해 사용 @Data @Builder(toBuilder = true) public class SampleDTO { private Long sno; private String first..
-
코드로 배우는 스프링부트 웹 프로젝트 Day1Spring/코드로 배우는 스프링부트 웹 프로젝트 2022. 8. 10. 16:14
/* Annotation 들은 스프링부트 프로젝트의 Annotation 정리 페이지에 따로 정리해두었습니다. */ @Test public void TestInsertDummies() { IntStream.rangeClosed(1, 100).forEach(i -> { Memo memo = Memo.builder().memoText("Sample..." + i).build(); memoRepository.save(memo); }); } IntStream.rangeClosed는 IntStream.range와 달리 끝 개수를 포함하게 됨 [조회 작업 테스트] findById() getOne() // findById() @Test public void testSelect() { // 데이터베이스에 존재하는 mno..
-
[인프런] 스프링 핵심 원리 후기Spring/스프링 핵심 원리 - 기본편 2022. 8. 9. 00:19
이거 쓸려고 악착같이 다 들었다.. (약간 후기 쓰는게 로망이었음) 후반부로 갈수록 내용도 좀 어렵고 이해가 안 되는 부분도 있었지만 그래도 찾아가보면서 열심히 완강했다.. 제일 머리에 박힌 것은 '객체지향'을 생각하며 코드를 짜야겠다는 깨달음이다. 확실히 직접 만들어가면서 공부하는게 쉽게 지치지도 않고 재미도 있는 듯.. 이제 진짜 후기 ⇊⇊⇊⇊ 일단 강의 퀄리티 자체가 좋았다. 잡음도 없고, 수업 자료도 상세하게 설명되어 있어서 강의 듣기 전에 한 번 읽고 들으면 훨씬 이해가 잘 갔다. 또 강사님이 워낙 호감형(?)이신 분이시라 고등학생 때 선생님 좋아서 그 과목 열심히 하는 느낌으로 끝까지 들을 수 있었던 것 같기도 하다. 그리고 내가 이 강의를 듣기 시작했을 때 상태는 영한님 입문 강의랑 구글링해..
-
Spring 개념Spring 2022. 8. 8. 16:34
ORM: Object Relational Mapping 객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술 ORM은 객체지향의 구조가 관계형 데이터베이스와 유사하다는 점에서 시작 객체지향 class 인스턴스 참조 관계형 데이터 베이스 table row(레코드 or 튜플) 관계 => 객체지향을 자동으로 관계형 데이터베이스에 맞게 처리해주는 것을 의도 JPA: Java PersistenceAPI ORM을 Java 언어에 맞게 사용하는 스펙 JPA는 스펙이기 때문에 스펙을 구현하는 구현체마다 회사의 이름이나 프레임워크의 이름이 다름 => 대표적으로 Hibernate가 있음 (ORM(JPA(Hibernate))) 의 구조 Spring Data JPA가 개발에 필요한 것 • JPA를 통해서 관리하게 되는 객체..
-
Annotation 정리Spring/Spring Boot Project 2022. 8. 8. 16:17
@Controller 📎 보통 View를 반환하기 위해 사용 📎 Data를 반환해야 하는 경우도 있음 => @ResponseBody 활용해야 함 📎 Controller를 통해 객체를 반환할 때는 일반적으로 ResponseEntity로 감싸서 반환함 @RestController 📎 @Controller + @ResponseBody 📎 주 용도는 Json 형태로 객체 데이터를 반환하기 위함 @Autowired 📎 자동으로 의존관계 주입 📎 생성자에 @Autowired를 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입 @RequiredArgsConstructor final 키워드를 사용한 인스턴스만 Bean 객체로 등록함!! 의존성 자동 주입 @Service @RequiredArgsCons..
-
빈 스코프Spring/스프링 핵심 원리 - 기본편 2022. 8. 7. 23:04
[인프런] 스프링 핵심 원리 - 기본편 • 싱글톤 : 기본 스코프. 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 • 프로토타입 : 프로토타입 빈의 생성과 의존관계 주입까지만 관여하는 매우 짧은 범위의 스코프 • 웹 관련 스코프 ∘ request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 ∘ session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프 ∘ application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 // 컴포넌트 스캔 자동 등록 @Scope("prototype") @Component public class HelloBean {} // 컴포넌트 스캔 수동 등록 @Scope("prototype") @Be..
-
빈 생명주기 콜백Spring/스프링 핵심 원리 - 기본편 2022. 8. 6. 18:30
[인프런] 스프링 핵심 원리 - 기본편 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 줌 => 안전한 종료 진행 가능 초기화 콜백: 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백: 빈이 소멸되기 직전에 호출 📍@PostConstruct, @PreDestroy 📎 가장 편리한 초기화와 종료 실행 방법 📎 스프링에서 권장하는 방법 📎 스프링에 종속되지 않은 자바 표준임 (javax.annotation.PostConstruct) 📎 외부 라이브러리에는 적용하지 못함 => 외부 라이브러리를 초기화, 종료해야 하면 @Bean의 기능을 사용
-
의존관계 자동 주입Spring/스프링 핵심 원리 - 기본편 2022. 8. 6. 01:05
[인프런] 스프링 핵심 원리 - 기본편 📌 의존관계 주입 방법 생성자 주입 수정자 주입 (setter 주입) 필드 주입 일반 메서드 주입 📍생성자 주입 지금까지 실습을 통해 했던 방식이 생성자 주입 방식이었음 📎생성자 호출 시점에 1번만 호출되는 것을 보장 📎불변, 필수 의존관계에 사용 📎생성자가 1개만 있으면 @Autowired를 생략해도 자동 주입됨 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(Mem..