일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- http
- 스프링 핵심 원리
- springdatajpa
- pointcut
- kotlin
- 인프런
- Servlet
- jpa
- Proxy
- 그리디
- transaction
- 알고리즘
- Android
- 스프링 핵심 기능
- SpringBoot
- spring
- Spring Boot
- java
- JDBC
- 백준
- Greedy
- AOP
- Exception
- Thymeleaf
- QueryDSL
- 자바
- db
- 김영한
- JPQL
- 스프링
- Today
- Total
목록spring (109)
개발자되기 프로젝트
스프링은 다형성 + OCP, DIP를 가능하게 지원한다. - DI(Dependency Injection): 의존관계, 의존성 주입 - DI 컨테이너 제공 : 자바 객체를 컨테이너에 넣어놓고 의존관계를 연결, 주입하는 기능 제공. 이렇게 해야 클라이언트 코드의 변경 없이 기능을 확장시킬 수 있음 쉽게 부품을 교체하듯이 개발이 가능함! 순수하게 자바로 OCP, DIP원칙을 지키면서 개발하면 결국에는 스프링 프레임워크를 만들게됨 ㅋㅋㅋㅋ 모든 설계에 역할과 구현을 분리!!! 애플리케이션 설계도 공연을 설계 하듯이 배역만 만들어 두고, 배우는 언제든지 유연하게 변경할 수 있도록 만드는 것이 좋은 객체 지향 설계이다!! 이상적으로는 모든 설계에 인터페이스를 부여해야함. 하지만 인터페이스를 너무 도입하면 추상화라는..
SRP : 단일 책임 원칙(single reponsibility principle) OCP : 개방-폐쇄 원칙(Open/closed principle) LSP : 리스코프 치환 원칙(Liskov subsitution principle) ISP : 인터페이스 분리 원칙(Interface segregation principle) DIP : 의존관계 역전 원칙(Dependency inversion principle) 1. SRP : 단일 책임 원칙(single reponsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 그러나 하나의 책임이라는 것은 모호함 - 클 수 있고, 작을 수 있다. - 문맥과 상황에 따라 다름. 중요한 기준은 변경! 변경이 있을 때 효과가 적으면 단일 책임 원..
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단뒤, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다.(협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 부품을 조립하듯이 component를 쉽고 유연하게 변경!!! 다형성(Polymorphism) 역할과 구현으로 세상을 구분해보자. 운전자(client)는 k3를 타던, 아반떼를 타던, 모델3를 타던 운전이 가능하다. 왜냐? 운전자(client)는 자동차 역학(interface)에 대해서만 의존하기 때문. 자동차의 역할을 만들고 구현을 분리한 것은 !! 운전자를 위해서다...
스프링의 핵심 스프링은 자바 언어 기반의 프레임 워크 자바 언어의 가장 큰 특징 - 객체 지향 언어 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워 그러하면 좋은 객체 지향은 뭘까?
1. Null이란 존재하지 않는 값을 의미 2. Null Point Exception(NPE) Copile단계에서 확인이 되지 않고 Runtime동안 발생하는 Error이다. Null인 객체에 접근하여 발생하는 예외이다. 3. Enumerate @Entity 속성 2 1. SQL이란? SQL 종류 들어가기에 앖서서 SQL(Structed Query Language, 구조적 질의언어)에 대해서 간략하게 알아보자. SQL은 관계형 DB의 관리시스템의 DATA를 관리하기 위한 만들어진 특수 목적의 프로그래 bsh-developer.tistory.com enum을 활용하여 method처리 결과의 상태를 같이 전달해 보자. enum에 대한 자세한 내용은 위에있는 링크 참고. 간단히 설명하면 enum은 일종의 상수..
1. Entity란? DB table에 존재하는 Columns을 field로 가지는 객체. 클래스에 @Entity annotation을 붙여 Entity라고 명시함. 2. DTO란? DTO는 Data Transfer Object의 약자로, 계층 간 data 교환 역할을 한다. 특히 Controller와 같이 client와 맡닿아 있는 계층에 entity를 직접 전달하는 대신 DTO를 사용하여 전달한다. DTO는 단순히 데이터 교환을 위한 객체이기 때문에, 특별한 로직을 갖지 않는다. 3. Entity와 DTO를 왜 분리해야함? view와 통신하는 class는 변경이 잦다! 만약 Entity를 주고받는다면, 잦은 Entity의 변화로 DB의 변경도 잦다. 또한 Entity의 변화는 영향의 범위가 매우 크다..
1. Movie와 Comment 연관관계 추가 1개의 movie에는 여러 개의 comment가 달릴 수 있다. 따라서 1:N관계이다. @OneToMany(fetch = FetchType.LAZY) @JoinColumn(name = "movie_id") @ToString.Exclude private List comments; 1:N 연관관계는 아래 글 참고. 1 : N 연관관계 - 1 이전에 만들어둔 User entity와 User History는 1:N연관관계를 갖는다. User는 현재 회원정보를 가지고 있는 테이블이고 UserHistory는 특정 user id에 저장된 값이 변경된 내역을 저장하는 table이다. 1. test @.. bsh-developer.tistory.com 2. addCommen..
1. API controller 기존 APi controller의 각 method를 보면 아래와 같이 Api controller의 기능 외에 실제 service로직까지 포함되어 있다. Service에 해당하는 class를 별도로 만들어서 apicontroller는 정말로 controller의 역할만 하게 수정해보자. @GetMapping("/search") public SearchMovieRes movieSearch(@RequestParam String query){ System.out.println(query); SearchMovieReq searchMovieReq = new SearchMovieReq(); searchMovieReq.setQuery(query); var result = naverCli..