본문 바로가기
반응형

Spring20

spring -> springboot 로 프로젝트 변경 여러개의 프로젝트를 사용중에 있는데 그중 spring 프로젝트가 존재하여 해당 프로젝트를 springboot 프로젝트로 변경을 하려고 한다. 스프링과 스프링 부트의 차이는 아래 참고 포스팅 참고 바란다. 프로젝트를 변경해주려면 간단하다. maven기준으로 설명을 하면 springframework 를 boot 로 pom.xml 에 설정만 변경해주면 된다. ... ... org.springframework.boot spring-boot-starter-parent version ... ... org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-security ... javax.servlet js.. 2023. 8. 30.
Spring 에서 Singleton singleton 패턴에 대해서는 아래 참고 포스팅을 참고 바란다. spring 에서의 기능중 하나는 의존성 주입인 DI 가 있다. 자세한 내용은 아래 참고 포스팅 참고바란다. 스프링에서는 컨테이너 위에 Bean이라고 하는 객체들을 생성한다. 그럼 개발자가 아닌 스프링에서 Bean을 대신해서 관리를 해준다. 여기서 Bean은 스프링위에 생성이 되는데, 호출이 될때마다 생성이 되는것이 아닌. Bean은 하나만 생성해두고, 호출이 될때마다 그 객체를 가져다 쓴다. 여러번 호출이 된다고 해서 객체가 여러개 생기는게 아니고 , 이것이 싱글톤이다. 간단히 코드로 예제를 살펴보면. @RestController @RequiredArgsConstructor public class TestController { priv.. 2023. 7. 28.
PSA 란? 자바 spring에서는 몇 가지 특성이 있다. 이전에 포스팅에서 다뤄본적이 있는데 한 가지가 빠져 있어서 그 부분에 대해서 설명을 해보려고 한다. (아래 참고 포스팅 참조) 주제는 PSA 이다. 스프링은 아래 사진이 유명한데 삼각형으로 만들어진 이 그림을 본 적이 있는 분들이 있을 것이다. AOP, DI/IoC 와 어깨를 나란히 하고 있는 이 PSA란 무엇일까? PSA란 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하는 추상화 구조를 말한다. 이는 POJO 원칙을 철저히 따른 Spring의 기능으로 Spring에서 동작할 수 있는Library들은 POJO원칙을 지키게끔 PSA형태의 추상화가 되어있음을 의미한다. "잘 만든 인터페이스 하나가 열 클래스 부럽지 않다" PSA = 잘 만든 인.. 2022. 9. 28.
스프링 웹플럭스(webflux) 지금까지의 기존의 스프링에서는 request 와 response 가 명백히 존재했다. 하지만 요즘 같은 시대에는 동시에 여러개의 작업이 이루어지고, 그러면서 나오는 개념이 동기식/ 비동기식, 그리고 블로킹/ 논블로킹의 개념이다. 해당 개념에 대해서는 아래 참고 포스팅을 확인해보도록 하자. 그리고 또한 요즘에는 리액티브 프로그래밍이라 하여 "리액티브(reactive)"란 용어는 I/O 이벤트에 반응하는 네트워크 요소, 마우스 이벤트에 반응하는 UI 컨트롤러 등 변화에 반응하는 것을 중점으로 둔 프로그래밍 모델을 말한다. 그런 의미에서 논 블로킹(non-blocking)은 리액티브다. 이유는 블로킹되지 않고 작업이 완료되거나 데이터가 사용 가능해짐 등과 같은 알림에 반응하기 때문이다. 수많은 요청에 의해 응.. 2022. 8. 24.
Spring에서 Service와 ServiceImpl 를 나누는 이유(2022.07.19) 스프링에 대한 기본적인 이해는 있을 것이라는 전제하에, (만약 스프링에 대한 이해도가 없다면 아래 참고포스팅을 참고하여 스프링 예제를 한번 해보고 오는것을 추천한다.) service를 구현할때 service를 클래스로 구현할지, 아니면 interface로 구성 후에 implements 로 구현을 할지에 대한 고민을 한다. 하지만 요즘 코딩의 추세는 나누는것이 목적이다. 그 이유는 아래와 같다. Loose Coupling 객체 간의 결합도를 낮추어 변화에 유연한 개발을 하기 위해서이다. 하나의 인터페이스를 구현하는 여러 구현체가 있고 기능에 따라 적절한 구현체가 들어가서 다형성을 주기 위함이다. 또 하나의 인터페이스만 바라보니 의존관계도 줄일 수 있다. Spring 에서 JDK Dynamic Proxy 를.. 2022. 7. 18.
Spring 에서 IOC, AOP, DI 에 대하여 이번 포스팅에서는 SPRING의 핵심요소인 IOC, AOP, DI에 대해서 다뤄볼 것이다. 다른 특징들도 많지만 이 세가지는 스프링의 장점으로 많이 알려져있다. 하나씩 다뤄보도록 해보자. IOC(Inversion of Control) 한글로 직역하면 제어의 역전이다. Spring 에서는 Container라는 개념이 있는데, 이 컨테이너는 객체를 담는 용기이다. bean의 생성부터 소멸까지 생명주기를 관리하게 된다. Container가 bean을 관리해주기에 제어의 역전이라고 한다. 쉽게 말해서 스프링컨테이너가 필요에 따라 개발자 대신에 bean을 관리해주는 행위라고 생각하면 된다. AOP(Aspect Oriented Programming) 관점 지향 프로그래밍이라는 뜻으로 객체지향(OOP)과는 또다른 의.. 2022. 3. 9.
Spring / SpringBoot 차이점 이름도 비슷하면서 뭔가 같으면서도 다른 이둘. 차이점을 알아보도록 하자. 일단 스프링이란 자바 프로그래밍 언어의 대표적인 프레임워크중 하나로 프레임워크는 아래 포스팅을 참조하자. 스프링 특징 의존성주입(DI) 제어의 역전(IOC) 관점지향(AOP) 스프링 대표 모듈 spring JDBC MVC AOP ORM Test 이 둘의 비교에는 많은 포스팅들이 있겠지만 간단하게 요점만 잡도록 해보자. 이렇게 많은 기능들이 있어서 환경설정 잡기부터 시작해서 설치해야할것들이 스프링에는 많이 존재한다. 그것들을 해결해주기 위해 spring boot라는 친구가 등장하였다. Spring boot 특징 대표적으로 was사용을 위한 톰캣 설치 및 설정을 자동 starter 를 통해서 dependency 자동화(이 부분은 버전관.. 2022. 1. 8.
spring 예제 part.final 이렇게 총 길게 12편의 part로 나뉘어서 간단하게 입력 수정 삭제 리스트 보기 위한(CRUD) 를 스프링으로 구현해보았다. 이쁘게 하기 위해서는 controller, dao, dto, service 등을 각각 패키지를 만들어서 관리를 해야 더욱 객체지향언어를 효율적으로 사용할수 있다. css도 연습을 하여 더욱 읽기 편하게 만든다면 UI/UX가 사용자에게 더욱 친숙하여 좋은 개발이 될것이다. 간단한 스프링 예제는 여기서 끝내고. 시간이 된다면 spring boot 와 jpa/querydsl 에 대해서도 다뤄볼 생각이다. 그럼 다들 즐거운 개발을 위하여! 2021. 12. 27.
spring 예제 part.12 여기서 끝내려고 했으나 추가적으로 리스트에 검색 기능 까지만 추가를 해볼것이다. sql 파일에 if문을 줘서 검색이 있을시 추가로 돌릴 코드를 추가 맨 아래 order by insert_date desc ]]> 를 지워주고 추가로 이렇게 작성을 한다. where 1 = 1 ]]> and (title like CONCAT('%',#{keyword},'%') or category like CONCAT('%',#{keyword},'%')) order by insert_date desc 결국 최종 select 는 이렇게 된다. book_SQL.xml select book_id, title, category, price, insert_date from book where 1 = 1 ]]> and (title li.. 2021. 12. 26.
반응형