- Spring 6의 REST Clients 3가지starryeye이번 포스팅에서는 Spring 6 의 REST Clients 3가지를 예제를 통해 알아보겠다. Spring 공식 문서에 따르면 아래와 같이 소개하고 있다. The Spring Framework provides the following choices for making calls to REST endpoints: 1. RestTemplate - synchronous client with template method API. 2. WebClient - non-blocking, reactive client w fluent API. 3. HTTP Interface - annotated interface with generated, dynamic proxy implementation. 하나씩 예제로 다뤄보자.. ..
- 2023-03-13 22:07:13
- Spring 의 DB 연동 기술 히스토리 요약starryeyeDB 연동 기술의 진화 Application → DB 커넥션 연결, SQL 전송, 결과 응답을 DB마다 다르게 개발 해줘야 함.. (각 DB 마다 모두 함수 사용법이 다름..) → JDBC 자바 표준 인터페이스 등장 Application → JDBC → DB JDBC가 등장하면서 DB 마다 다른 연동 기술을 통합 해줬다. - JDBC 인터페이스의 구현체(JDBC 드라이버)는 각 DB 사에서 개발 ))) 불편한 점 - 커넥션 연결, SQL 전송, 결과 응답 등 반복 코드를 모두 개발 필요 → SQL Mapper 등장 Application → SQL Mapper → JDBC → DB SQL Mapper 를 사용하여 Jdbc를 간접적으로 이용할 수 있게 되었다. 개발자 입장에서는 JDBC의 반복코드를 제거하였..
- 2023-03-10 20:02:59
- 기능과 구조의 통합 (feat. 책임-주도 설계)starryeye지금껏 책을 읽으면서 생각하고 알게된 지식들이 여기서 완전해진다. 책.. 197 페이지이다. 이 부분은 포스팅을 보지말고 다시 읽는 것을 추천한다.. (그림도 너무 좋다..) 객체지향 패러다임은 모든 것이 객체라는 사상에서 출발한다. 프로그래머는 시스템을 사용자로부터 전송된 메세지를 수행하기 위해 책임을 수행하는 거대한 자율적인 객체로 본다. 시스템은 사용자와 만나는 경계에서 사용자의 목표를 만족시키기 위해 사용자와의 협력에 참여하는 커다란 객체다. 사용자에게 시스템이 수행하기로 약속한 기능은 결국 시스템의 책임으로 볼 수 있다. 시스템이라는 객체 안에는 더 작은 규모의 객체가 포함될 수 있다. 이제 시스템이 수행해야 하는 커다란 규모의 책임은 시스템 안에 살아가는 더 작은 크기의 객체들의 협력을 통해 ..
- 2023-02-23 03:50:00
- 도메인 모델starryeye들어가기 전에.. 객체지향 세계를 구축하기 위해서는 사용자에게 제공할 기능과 기능을 담을 안정적인 구조라는 재료가 준비되어 있어야 한다. 구조는 사용자나 이해관계자들이 도메인에 관해 생각하는 개념과 개념들 간의 관계로 표현한다. 기능은 사용자의 목표를 만족시키기 위해 책임을 수행하는 시스템의 행위로 표현한다. 일반적으로 기능을 수집하고 표현하기 위한 기법을 유스케이스 모델링이라 한다. 구조를 수집하고 표현하기 위한 기법을 도메인 모델링이라 한다. 본격적으로 도메인 모델에 대해 알아보자. 도메인 사용자가 프로그램을 사용하는 대상 분야를 도메인이라고 한다. 모델 모델은 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태이다. 복잡성의 바다에서 길을 잃지 않고 중요한 문제에 집중할 수 있도록 필요한 지식만 ..
- 2023-02-23 02:57:47
- 기능과 구조 설계starryeye모든 소프트웨어 제품의 설계에는 두 가지 측면이 존재한다. 하나는 기능 측면의 설계이고.. 다른 하나는 구조 측면의 설계이다. 기능 측면의 설계는 제품이 사용자를 위해 무엇을 할 수 있는지에 초점을 맞춘다. 구조 측면의 설계는 제품의 형태가 어떠해야 하는지에 초점을 맞춘다. 설계의 가장 큰 도전은 기능과 구조라는 두가지 측면을 함께 녹여 조화를 이루도록 만드는 것이다. 소프트웨어 분야에서 예외가 없는 유일한 규칙은 요구사항이 항상 변경된다는 것이다. 설계라는 행위를 중요하게 만드는 것은 변경에 대한 필요성이다. 훌륭한 소프트웨어 설계자는 사용자가 만족할 수 있는 훌륭한 기능을 제공하는 동시에 예측 불가능한 요구사항 변경에 유연하게 대처할 수 있는 안정적인 구조를 제공하는 능력을 갖춰야한다. 그렇다면.. ..
- 2023-02-23 02:28:04
- JPA 핵심 정리 - 모음starryeye들어가기전에.. "자바 ORM 표준 JPA 프로그래밍" 책 3회차 복습 기념(?) 포스팅 JPA를 포스팅으로 정리하는건 너무 방대하고 힘들다.. 책을 보는 수 밖엔.. 방법이 없다.. 조금씩만 해보자.. 이 포스팅은 글쓴이가 쉽게 까먹을 것 같은 핵심 개념을 쭉 나열한다. 따라서 각 개념마다 연관성이 없을 수 있다. 1. 짧은 개념은 여기 포스팅에 계속 정리.. 2. 긴 설명이 필요한건 따로 포스팅.. 3. case별 JPQL 모음 따로 포스팅.. (지하철 타고 보기 좋음) JPQL(Java Persistence Query Language)은 객체지향 쿼리 언어이다. 엔티티 객체(클래스, 필드)를 대상으로 검색하기 위해 태어난 언어이다. 영속성 컨텍스트란.. 엔티티를 영구 저장하는 환경이라는 뜻이다. 엔..
- 2023-02-22 21:30:02
- JPA 핵심 정리 - EntityManagerstarryeyeEntityManagerFactory EntityManager를 생성해준다. JPA를 동작시키기 위한 기반 객체와 JPA 구현체에 따라 DB 커넥션 풀도 생성한다. EntityManagerFactory는 생성비용이 아주 크기 때문에 Application 전체에서 한번만 생성하고 공유해서 사용해야한다. EntityManager EntityManagerFactory에서 생성할 수 있다. EntityManager를 통해서 엔티티를 DB에 CRUD 할 수 있다. (쉽게 생각해서 가상의 DB라고 생각하자.) 내부에 DataSource(DB Connection)를 유지하면서 데이터베이스와 통신한다. -> 따라서, 스레드간 공유는 하면 안된다. Springboot 에서는.. 위 두 객체를 그냥 의존성 주입 받고 쓰면..
- 2023-02-22 18:04:38
- JPA 핵심 정리 - Table 매핑starryeye@Entity 이 클래스를 테이블과 매핑한다고 JPA에게 알려준다. (엔티티 클래스가 된 것) @Table 엔티티 클래스에 매핑할 테이블 정보를 알려준다. (생략하면 엔티티 이름을 테이블 이름으로 매핑) @Id 엔티티 클래스에서 @Id 어노테이션이 적용된 필드를 테이블의 PK에 매핑한다. (해당 필드를 식별자 필드라 부른다.) @Column 적용된 필드를 컬럼에 매핑한다. -> 생략하게되면 필드명을 사용해서 컬럼명으로 매핑된다. -> 대소문자를 구분하는 데이터베이스를 사용하면 @Column(name = "컬럼명") 처럼 명시적으로 매핑
- 2023-02-22 17:44:50
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)