본문 바로가기
728x90
반응형

Spring/Spring25

[Spring] STS 이전 버전 설치하기 안녕하세요. J4J입니다. 이번 포스팅은 STS 이전 버전 설치하는 방법에 대해 적어보는 시간을 가져보려고 합니다. STS 4.x버전 설치 방법 [ 1. STS 사이트 접속 ] https://spring.io/tools [ 2. PROJECT WIKI 접속 ] 사이트에 접속하고 70% 정도 스크롤을 하면 다음과 같이 PROJECT WIKI 버튼을 확인할 수 있습니다. [ 3. Previous Releases Eclipse 접속 ] PROEJCT WIKI를 클릭하면 github에 접속이 됩니다. 그리고 우측을 확인하면 Previous Release Eclipse라는 링크를 확인할 수 있습니다. [ 4. 이전 버전 리스트 확인 ] 링크를 클릭하면 다음과 같이 이전 버전 리스트들을 확인할 수 있고 원하는 버전.. 2022. 3. 17.
[Spring] Filter를 이용하여 Request Parameter 조작하기 안녕하세요. J4J입니다. 이번 포스팅은 filter를 이용하여 request parameter를 조작하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 최근 회사 업무를 수행하다가 클라이언트로부터 전달받은 parameter를 조작해야 되는 상황이 생겼었습니다. 대표적인 케이스가 parameter 암호화입니다. 보안성을 높이기 위해 클라이언트에서 리소스를 암호화하여 전달하고는 하는데 서버에서 전달받는 리소스마다 복호화하게 될 경우 불필요하고 반복적인 작업이 많아지게 됩니다. 이를 보완하고자 request를 조작하는 filter를 등록하여 클라이언트에서는 암호화된 리소스를 전달했지만 스프링의 비즈니스 로직 구간에서 데이터를 전달받았을 땐 복호화가 되어있도록 하여 재사용성을 높이는 방향을 생각하게 되었습니.. 2021. 11. 11.
[Spring] 파일 다운로드 안녕하세요. J4J입니다. 이번 포스팅은 스프링에서 파일 다운로드하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 다운로드될 파일 테스트용으로 다운로드해 볼 파일은 다음과 같은 위치에 저장되어 있습니다. 그리고 이 파일을 스프링을 이용하여 접근할 수 있도록 하고 웹페이지에서 특정 URL에 접근을 하게 되면 해당 파일이 다운로드되는 코드를 구현해보겠습니다. 스프링 코드 package com.spring.fileDown.controller; import java.io.File; import java.io.FileInputStream; import java.io.OutputStream; import javax.servlet.http.HttpServletResponse; import org.springfra.. 2021. 6. 7.
[Spring] 설정 파일 변경하는 다양한 방법 (xml → Java) 안녕하세요. J4J입니다. 이번 포스팅은 설정 파일을 변경하는 다양한 방법에 대해 적어보는 시간을 가져보려고 합니다. 최근 스프링 설정 파일의 추세는 익숙하지 않은 xml파일보다 익숙한 환경의 Java파일로 설정하는 추세라고 개인적으로 생각합니다. 그리고 변경하는 방법에는 다양한 방법들이 있는데 그중 제가 알고 있는 방법들을 정리해보고자 합니다. root-context와 service-context 모두 각각 2가지 방법밖에 모르지만요 ㅎㅎ.. 제 블로그에서 사용했던 JPA와 MyBatis 설정방법까지 같이 포함하여 변경해보도록 하겠습니다. 변경 전 root-context.xml 혹시 태그를 사용하는데 에러가 발생하시는 분은 xml파일 하단의 Namespaces탭을 다음과 같이 변경해주시면 됩니다. ro.. 2021. 4. 10.
[Spring] JWT 구현하기 (2) 안녕하세요. J4J입니다. 이번 포스팅은 Client에서 JWT 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이전에 작성된 포스팅을 참고하시면 이해가 더 잘되실 겁니다. 2021.04.07 - [Spring/Spring] - [Spring] JWT란? 2021.04.08 - [Spring/Spring] - [Spring] JWT 구현하기 (1) 이전 꺼를 보신 분들은 스프링에서 JWT사용을 위한 설정이 완료된 상태일 겁니다. 이번엔 Client가 사용되는 화면을 구성할 React를 이용해서 어떤 식으로 서버와 주고받는지에 대해 보여드리도록 하겠습니다. 기본적인 흐름은 다음과 같습니다. 화면에서 아이디와 비밀번호를 입력하여 로그인하기 정상적으로 로그인이 된 경우 브라우저 저장소.. 2021. 4. 9.
[Spring] JWT 구현하기 (1) 안녕하세요. J4J입니다. 이번 포스팅은 Server에서 JWT 구현하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이전에 작성된 포스팅을 참고하시면 이해가 더 잘되실 겁니다. 2021.04.07 - [Spring/Spring] - [Spring] JWT란? 이번 포스팅에서는 스프링 설정만 진행해보고자 합니다. Client 부분은 다음 포스팅에서 작성하여 이번에 구현한 스프링과 서로 통신되는 과정을 보여드리도록 하겠습니다. 스프링에서 JWT를 구현을 위한 키워드는 Interceptor를 이용하는 것입니다. ※ Interceptor에 대해 모르신다면? 2021.03.01 - [Spring/Spring] - [Spring] Filter / Interceptor Client에서 보낸 요청.. 2021. 4. 8.
[Spring] JWT란? 안녕하세요. J4J입니다. 이번 포스팅은 JWT가 무엇인지에 대해 적어보는 시간을 가져보려고 합니다. JWT란? JWT는 JSON Web Token의 약자로 선택적 서명 및 암호화를 사용하여 JSON 데이터를 보관하고 있는 인터넷 표준 웹 토큰입니다. JWT를 사용하는 이유는 주로 사용자 인증처리를 위해서입니다. 기존에 사용되던 세션 처리와 달리 서버에 정보를 저장하지 않아 Stateless한 상태의 서버를 만들어주는 특징이 있습니다. JWT 구조 JWT는 Header(헤더), Payload(내용), Signature(서명)의 3가지로 구분되며 다음과 같이 토큰이 만들어집니다. JWT 토큰: [Base64(Header)].[Base64(Payload)].[Base64(Signature)] Header(헤.. 2021. 4. 7.
[Spring] JUnit Test에 JNDI 적용 안녕하세요. J4J입니다. 이번 포스팅은 JUnit Test에 JNDI 적용하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 포스팅을 보시면 JNDI를 이용하여 데이터베이스를 연결하는 방법에 대해 설명드렸었습니다. 하지만 JNDI를 사용하게 되면 단위 테스트를 진행할 때는 서버를 실행시키지 않으니 데이터베이스의 정보를 알 수 없는 문제가 발생하게 됩니다. 역시나 JNDI와 단위 테스트를 동시에 사용할 수 있는 방법이 있었고 어떻게 설정하는지 보여드리도록 하겠습니다. 프로젝트 설정 제가 설정했었던 RootContext파일은 다음과 같습니다. package com.spring.jndi.config; import javax.sql.DataSource; import org.mybatis.spring.S.. 2021. 4. 5.
[Spring] JNDI를 이용한 Tomcat에 Datasource 구성 안녕하세요. J4J입니다. 이번 포스팅은 JNDI를 이용한 Tomcat에 Datasource 구성에 대해 적어보는 시간을 가져보려고 합니다. JNDI란? JNDI는 Java Naming and Directory Interface의 약자로 디렉터리 서비스에서 제공하는 데이터 및 객체를 참고하여 사용할 수 있도록 도와주는 자바 API입니다. JNDI를 사용하는 이유는 프로젝트 내부에 DB정보를 담아두는 것이 아니라 Tomcat과 같은 WAS 서버에 DB정보를 담아두고 사용하기 위해서입니다. 보통 개인들이 모여서 하는 프로젝트에서는 DB서버를 하나만 사용하지만 회사에서는 개발 목적, 운영 목적 등으로 구분되어 여러 서버를 사용하는 경우가 있습니다. 이런 경우 목적에 적합한 DB를 실행시키기 위해 매번 data.. 2021. 4. 4.
[Spring] MyBatis ↔ Repository를 연결하는 다양한 방법들 안녕하세요. J4J입니다. 이번 포스팅은 MyBatis ↔ Repository를 연결하는 다양한 방법들에 대해 적어보는 시간을 가져보려고 합니다. 이 포스팅에서도 보실 수 있듯이 저는 DB 연결을 위해 MyBatis와 Repository를 연결할 때 interface, interface를 구현한 class, mapper를 모두 생성하곤 했습니다. 하지만 최근 interface와 mapper만으로 MyBatis와 Repository를 연결할 수 있는 방법을 알게 되었는데 사용하던 방법보다 더 효율적이라고 느껴지고 지식을 얻은 김에 알고 있는 방법들을 정리하는 포스팅을 하고자 글을 적게 되었습니다. 알고 있는 방법이 2개밖에 없지만 이 2개보다도 더 효율적인 방법을 알게된다면 추후 포스팅을 해보도록 하겠습니.. 2021. 3. 16.
[Spring] 파일 업로드 - MultipartRequest(With. React) 안녕하세요. J4J입니다. 이번 포스팅은 MultipartRequest를 이용한 파일 업로드에 대해 적어보는 시간을 가져보려고 합니다. 이전 포스팅에서 MultipartFile을 이용한 파일 업로드에 대해 다뤘었는데 개인적으로 MultipartFile이 유동적으로 적용하기가 더 편리하게 느껴지고 또한 자세히 알아본 것은 아니지만 MultipartFile이 더 최신 기능인 것 같습니다. 한 마디로, 새롭게 파일 업로드 기능을 구현하고자 한다면 MultipartFile 사용을 추천합니다. 그럼에도 불구하고 MultipartRequest에 대해 포스팅을 하는 이유는 오래 지속되어온 시스템들엔 MultipartRequest를 사용하고 있을 수도 있기 때문에 추가적인 작업을 진행하시는 분들에게 도움이 되고자 작성.. 2021. 3. 5.
[Spring] 파일 업로드 - MultipartFile(With. React) 안녕하세요. J4J입니다. 이번 포스팅은 MultipartFile을 이용한 파일 업로드 방법에 대해 적어보는 시간을 가져보려고 합니다. 적용 방법 ※ 스프링과 관련된 코드는 모두 STS-3.9.12.RELEASE 버전을 기준으로 작성되었습니다. [ 1. pom.xml에 dependency 추가 ] commons-fileupload commons-fileupload 1.4 com.fasterxml.jackson.core jackson-databind 2.9.8 [ 2. servlet-context에 multipartResolver 추가 ] [ 2-1. xml에 설정할 경우 ] ... [ 2-2. Java에 설정 할 경우 ] package com.spring.multipartFile.config; impor.. 2021. 3. 4.
[Spring] Swagger 안녕하세요. J4J입니다. 이번 포스팅은 Swagger에 대해 적어보는 시간을 가져보려고 합니다. Swagger란? 스웨거는 개발자가 Rest API를 만들고 만든 Rest API에 대한 설계, 빌드, 문서화 등을 도와주는 오픈 소스 프레임워크입니다. 간단하게 말하자면 스프링으로 만든 Rest API를 한눈에 볼 수 있도록 자동화해준다고 생각합니다. 사용 이유 스웨거를 사용하는 이유는 협업을 위한 API 문서 자동화입니다. 개발 요건에 맞게 구현된 Rest API는 적게는 한 곳, 많게는 여러 곳에서 클라이언트 화면을 구성하기 위한 데이터를 호출하기 위해 사용됩니다. 결과적으로 API를 사용하기 위해 파라미터 값은 무엇이고 리턴 값은 무엇인지 등의 정보가 필요했고 스웨거는 관련 데이터를 스웨거만 보며 이.. 2021. 3. 3.
[Spring] Lombok 개요 ◎ Lombok이란? ◎ 장점 ◎ 단점 ◎ 적용 방법 ◎ 사용 방법 (캡슐화) ◎ 사용 방법 (로그) 안녕하세요. J4J입니다. 이번 포스팅은 Lombok에 대해 적어보는 시간을 가져보려고 합니다. Lombok이란? 롬복은 개발자의 노가다(?)성이 짙은 단순 반복 작업을 덜어주기 위한 라이브러리로 데이터 접근을 위한 객체인 DTO의 캡슐화하는 작업들을 자동으로 해줍니다. 또한 로그를 찍기 위해 loggerFactory 등을 사용하던 것도 단순히 어노테이션만 추가하면 로그를 출력할 수 있도록 해줍니다. 장점 롬복의 가장 큰 장점은 반복적인 단순 작업을 안 하도록 도와준다는 겁니다. 일반적으로 DTO 클래스를 작성할 때 접근 지정자가 private인 변수들을 작성한 뒤 getter, setter는 기본.. 2021. 3. 2.
[Spring] Filter / Interceptor 개요 ◎ Filter와 Interceptor의 역할 ◎ 실행 흐름 ◎ 처리되는 기능 ◎ 프로젝트 설정 (공통) ◎ 프로젝트 설정 (Filter) ◎ 프로젝트 설정 (Interceptor) ◎ 실행 화면 ◎ ServletContext 설정 파일 변경 (xml → Java) ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 Filter와 Interceptor에 대해 적어보는 시간을 가져보려고 합니다. Filter와 Interceptor의 역할 스프링에서 필터와 인터셉터의 역할은 공통 코드 처리입니다. 스프링을 이용하여 개발하다 보면 모든 클래스 파일 또는 일부분의 클래스 파일에 공통적으로 적용시켜야 하는 코드가 생길 수 있습니다. 파일마다 따로 적용시켜도 문제 될 것은 없지만 코드를 수정하는 등의 유지.. 2021. 3. 1.
[Spring] Rest API / @RestController(2) 개요 ◎ 들어가기에 앞서 ◎ 프로젝트 설정 ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 스프링에서 Rest API 구현을 위한 프로젝트 설정에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이전 포스팅에서 Rest API와 @RestController가 무엇인지에 대해 간단하게 알아봤었습니다. 앞서 알게 된 개념들을 바탕으로 이번 시간에는 JSP와 스프링을 사용하여 Rest API의 구조를 만들어보겠습니다. JSP로는 사용자가 보게 될 화면을 만들것이고 스프링에서는 화면에서 가져다 쓸 API를 만들어 보겠습니다. 프로젝트 설정 ※ 스프링과 관련된 코드는 모두 STS-3.9.12.RELEASE 버전을 기준으로 작성되었습니다. [ 0. 프로젝트 초기 설정 (프로젝트 명: rest, 패키.. 2021. 2. 27.
[Spring] Rest API / @RestController(1) 개요 ◎ Rest API란? ◎ 통신 과정 ◎ 스프링에서 Rest API ◎ 비동기 / Jquery / Ajax 안녕하세요. J4J입니다. 이번 포스팅은 Rest API와 @RestController에 대해 적어보는 시간을 가져보려고 합니다. Rest API란? Rest는 Representational State Transfer의 약자로 HTTP URI를 통해 리소스를 명시하고 HTTP Method(GET, POST, DELETE, PUT)를 사용하여 리소스에 대한 행위를 표현하는 것입니다. API는 Application Programming Interface의 약자로 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만들어 둔 인터페이스를 의미합니다. 그.. 2021. 2. 24.
[Spring] 스프링을 이용한 MVC패턴 구현(6) - JSP를 이용한 화면 구성 개요 ◎ 들어가기에 앞서 ◎ 프로젝트 설정 ◎ 파일 구성 안녕하세요. J4J입니다. 이번 포스팅은 스프링을 이용한 MVC패턴 구현의 마지막 포스팅인 JSP를 이용한 화면 구성에 대해 적어보는 시간을 가져보려고 합니다. 들어가기에 앞서 이번 포스팅은 위의 스프링 MVC구조에서 빨간 박스에 포함되는 내용에 대해 적어보고자 합니다. 사용자 인터페이스 화면은 JSP를 이용하여 구현할 것이고 지금까지 작성해둔 코드들을 JSP에서 모두 사용해보며 카트에 물건도 담아보고 카트에 담겨있는 물건을 화면에서 확인해보겠습니다. 프로젝트 설정 ※ 스프링과 관련된 코드는 모두 STS-3.9.12.RELEASE 버전을 기준으로 작성되었습니다. [ 1. 한글로 된 데이터 값이 정상적으로 넘어가기 위해 web.xml에 filter .. 2021. 2. 22.
728x90
반응형