일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- Annotation
- replace()
- 항해
- lombok
- repository
- Spring
- yeouido
- 개발
- 이행시
- StringBuffer
- upc
- Controller
- StringBuilder
- 문자열
- 백엔드
- 어노테이션
- Service
- 스프링
- string
- 아스키코드
- bit
- 윤동주
- 삼행시
- CS
- 자바
- Today
- Total
목록Spring (11)
Dev.끄적끈적

DTO란? DTO란 Data Transfer Object의 약자로, 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는 객체이다. 이때, 계층은 Presentation(View, Controller), Business(Service), Persistence(DAO, Repository) 등을 의미한다. DTO는 순수하게 데이터를 저장하고, 데이터에 대한 getter, setter 만을 가져야 한다. 즉, DTO는 어떠한 비즈니스 로직을 가져서는 안되며, 저장, 검색, 직렬화, 역직렬화 로직만을 가져야 한다. 웹 개발을 하다보면, 많이 하는 실수 중 하나가 바로 요청과 응답으로 엔티티(Entity)를 직접 사용하는 것이라고 한다. 하지만 왜 귀찮게 DTO를 만들어서 코드를 작성하는 것이 더 좋을까? D..

AOP는 무엇일까? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 그리고 흩어진 Aspect를 모듈화할 수 있는 프로그래밍 기법이다. 아래 사진 예시를 보면 이해가 쉽다. 서로 다른 클래스라고 하더라도 비슷한 기능을 하는 부분(ex 비슷한 메서드, 비슷한 코드)이있다. 이 부분을 Concern이라고 한다.(옆 색칠 되어 있는 부분) 이 때 만약 노란색 기능을 수정하여야하면, 각각 클래스의 노란색 기능을 수정해주어야 하기 때문에, 유지 보수 면에서 불리하다. 이것을 해결한 방법이 AOP이다. 흩어진 기능들을 모을 때 사용하는 것이 Aspect이다. 각각 Concern 별로 Aspect를 만들어주고, 어느 클래스에서 사용하는 지 입력해주는 방식이다. ..

02. JPA 이해 ORM이란? 💡 ORM: Object-Relational Mapping 백엔드 개발자(Backend Developer): 웹 서버를 개발하는 개발자 DBA (Database Administration): 데이터베이스 관리자. 데이터베이스를 설치, 구성, 관리 등의 일을 맡은 사람 Object: **"객체"**지향 언어 (자바, 파이썬) Relational: "관계형" 데이터베이스 (H2, MySQL) Questions) ORM 이 없이 웹 서버 개발은 못 하나요? ORM 없이도 충분히 웹 서버 개발 가능 예) AllInOneController 에서 Repository 역할 분리 ORM 만든 이유? ORM 이 없는 환경에서는 백엔드 개발자가 비즈니스 로직 개발보다 SQL 작성에 더 많은..

빈 (Bean): 스프링이 관리하는 객체 스프링 IoC 컨테이너: 'Bean' 을 모아둔 통 스프링 IoC 컨테이너가 관리하는 객체들을 Bean 이라고 부릅니다. 스프링은 이러한 Bean들의 의존성을 관리하고, 객체를 만들어 주며, Bean으로 등록을 해 주고, 이렇게 만들어진 것들을 관리합니다. 개발자가 이 부분까지 신경쓰지 않아도, 프레임워크가 알아서 해 주는 것입니다. 그리고 스프링 IoC 컨테이너가 위와 같은 관리를 해 줍니다. 이러한 Bean들을 담고 있는 스프링 IoC 컨테이너는 두 가지 중 하나를 사용합니다. ApplicationContext 혹은 BeanFactory ApplicationContext는 BeanFactory를 상속받으므로 둘 다 같은 일을 하는 것임 이러한 스프링에서의 의존..

"제어의 역전 (IoC: Inversion of Control)" 프로그램의 제어 흐름이 뒤바뀜 일반적: 사용자가 자신이 필요한 객체를 생성해서 사용 IoC (제어의 역전) 용도에 맞게 필요한 객체를 그냥 가져다 사용 "DI (Dependency Injection)" 혹은 한국말로 "의존성 주입"이라고 부릅니다. 사용할 객체가 어떻게 만들어졌는지는 알 필요 없음 실생활 예제) 가위의 용도별 사용 Repository DI 적용 public void createProduct(Product product) throws SQLException { // DB 연결 Connection connection = DriverManager.getConnection("jdbc:h2:mem:springcoredb", "sa"..

1. Controller 클라이언트의 요청을 받음 요청에 대한 처리는 서비스에게 전담 클라이언트에게 응답 2. Service 사용자의 요구사항을 처리 ('비즈니스 로직') 하는 실세 중에 실세!!! 현업에서는 서비스 코드가 계속 비대해짐 DB 정보가 필요할 때는 Repository 에게 요청 3. Repository DB 관리 (연결, 해제, 자원 관리) DB CRUD 작업 처리 전체적인 모습 관심사 분리해보기 1. Controller 2. Service 3. Repository
보호되어 있는 글입니다.

[HTTP 메시지] Client 와 Server 간 Request, Response 는 HTTP 메시지 규약을 따름 HTTP 메시지는 웹 서비스 개발자(백엔드, 프론트 개발자)에게 매우 중요한 내용!! 스프링 MVC 이해를 위한 필수 내용만 학습 1) 메시지 구조 🌐 참고: HTTP 메시지 설명 (MDN Web Docs) 시작줄 (start line) Response 에선 '상태줄 (status line)' 이라고 부름 헤더 (headers) 본문 (body) 2) Request 메시지 시작줄: API 요청 내용 GET **naver.com** HTTP/1.1 헤더 "Content type" 없음 HTML 태그로 요청 시 Content type: application/x-www-form-urlencode..