Spring/개념(13)
-
Void Type
스프링으로 개발을 하다보면, api response 객체에는 굳이 담을 것이 없지만 이 api가 성공적인 동작을 했다는것은 클라이언트에게 알려야할 수도 있다. 이럴때는 어떤식으로 만들어야 할까? 보통 API response를 그대로 쓰는 경우, 혹은 이것을 살짝만 매핑해서 쓰는 경우가 많을텐데 이럴때는 응답을 안 보낼수도 없고, 보내야만 한다. public ResponseEntity insertUser(Request request) { // ... if(request.id == null) return new ResponseEntity(HttpStatus.NO_CONTENT); // 오류 메시지도 같이 던지면 좋을거같다. return new ResponseEntity(HttpStatus.OK); } 이렇게..
2023.12.28 -
[토비의 스프링1] 9 스프링 프로젝트 시작하기
스프링은 어떤 종류의 애플리케이션에도 잘 들어맞도록 매우 유연하게 설계된 범용 프레임워크다. 그래서 아키텍처의 종류나 프로젝트를 구성하는 방법에 대한 자유도가 매우 놆다. 그만큼 구성 방법이나 아키텍처를 선택할 때 주의를 기울일 필요가 있다. 스프링이 유연하다고 해서 아무렇게나 가져다 쓰면 스프링이 주는 유익을 제대로 얻지 못할 수도 있기 때문이다. 1 자바 엔터프라이즈 플랫폼과 스프링 애플리케이션 스프링은 주로 자바 엔터프라이즈 환경에서 동작하는 애플리케이션을 개발하는 목적으로 사용된다. 서버에서 동작하는 엔터프라이즈 애플리케이션을 제외한 다른 형태의 애플리케이션에 스프링을 제대로 적용하기 위해서는 SpringRCP 프로젝트나 Spring.ME 같은 추가적인 스프링 지원기술이 필요하다. 자바 엔터프라이..
2022.07.01 -
[토비의 스프링1] 8 스프링이란 무엇인가?
1. 스프링의 정의 : 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 애플리케이션 프레임워크 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크. 애플리케이션 개발의 전 과정을 빠르고 편리하며 효율적으로 진행하는데 일차적인 목표를 두는 프레임워크이다. 스프링을 MVC 프레임워크 또는 JDBC/ORM 지원 프레임워크라고 생각하는 것은 스프링이 다루는 일부 영역만 봤기 때문이다. 또, 스프링을 IOC/DI프레임워크나 AOP 툴이라고 보는 이유는 스프링이 제공하는 핵심 기술에만 주목했기 때문이다. 스프링의 일차적인 존재 목적은 핵심 기술에 담긴 프로그래밍 모델을 일관되게 적용해서 엔터프라이즈 애플리케이션 전 계층과 전 영역에 ..
2022.06.27 -
[토비의 스프링1] 7.2 인터페이스의 분리와 자기참조 빈
7.2.1 XML 파일 매핑 스프링 XML파일에서 태그 안에 SQL정보를 넣어놓고 활용하는건 좋은 방법이 아니다. 그보다 SQL을 저장해두는 전용포맷을 가진 독립적인 파일을 이용하는 편이 바람직하다. 독립적이라고 해도 가장 편리한 포맷은 역시 XML이니 검색용 키와 SQL 문장 두가지를 담을 수 있는 간단한 XML을 설계해, 파일에서 SQL을 읽어뒀다가 DAO에게 제공해주는 SQL 서비스 구현 클래스를 만들어보자. JAXB JAXB(Java Architecture for XML Binding)는 자바 클래스를 XML로 표현하는 자바 API이다. JAXB는 주로 2가지 기능이 있다. 자바 객체를 XML로 직렬화하는 것이고 반대로 XML에서 자바 객체로 역직렬화하는 것이다. 즉, JAXB는 메모리의 데이터를..
2022.06.26 -
[토비의 스프링1] 7.1 SQL과 DAO의 분리
DAO와 SQL을 분리해야하는 이유 DAO는 데이터를 가져오고 조작하는 작업의 인터페이스일 뿐이다. 데이터 액세스 로직은 바뀌지 않더라도 DB의 테이블, 필드 이름과 SQL문장이 바뀔 수 있다. (어떤 이유든지 SQL변경이 필요한 상황이 발생하면 SQL을 담고 있는 DAO코드가 수정될 수 밖에 없다. 현재 동작하고 있는 애플리케이션에서 사용되는 SQL이 정확히 어떤 것인지 알려면 최종 빌드에 사용한 자바 코드를 가져와 일일이 코드를 뒤져봐야 하기 때문이다. 7.1.1 XML 설정을 이용한 분리 SQL을 스프링의 XML설정파일로 빼오는 것이다. 개별 SQL프로퍼티 방식 public class UserDaoJdbc implements UserDao{ private String sqlAdd;// 요기에 sql..
2022.06.26 -
[토비의 스프링1] 7 스프링 핵심 기술의 응용
스프링이 가장 가치를 두고 적극적으로 활용하려고 하는 것은 결국 자바 언어가 기반을 두고 있는 객체지향 기술이다. 스프링의 모든 기술은 결국 객체지향적인 언어의 장점을 적극적으로 활용해서 코드를 작성하도록 도와주는 것이다. 7장에서는 지금까지 살펴봤던 세 가지 기술(의존성 주입, 서비스 추상화, AOP)을 애플리케이션 개발에 활용해서 새로운 기능을 만들어보고 이를 통해 스프링의 개발철학과 추구하는 가치, 스프링 사용자에게 요구되는 게 무엇인지를 살펴보겠다. 1. SQL과 DAO의 분리 https://youngjun96.tistory.com/76 [토비의 스프링1] 7.1 SQL과 DAO의 분리 DAO와 SQL을 분리해야하는 이유 DAO는 데이터를 가져오고 조작하는 작업의 인터페이스일 뿐이다. 데이터 액세..
2022.06.26