Spring Core
-
이번에는 Spring Boot 개발을 위해 필요한 환경구축과 Quick Start 애플리케이션을 작성해보자. 개발 환경 설정 Spring.ioSpring과 관련된 내용은 https://spring.io/에 잘 정리되어있다. 아래 내용은 Quick Start(https://spring.io/quickstart/)의 내용을 활용한 내용 들이다. Spring | QuickstartSpring Quickstart Guide What you'll build You will build a classic “Hello World!” endpoint which any browser can connect to. You can even tell it your name, and it will respond in a mor..
02. 환경설정 및 Quick Start이번에는 Spring Boot 개발을 위해 필요한 환경구축과 Quick Start 애플리케이션을 작성해보자. 개발 환경 설정 Spring.ioSpring과 관련된 내용은 https://spring.io/에 잘 정리되어있다. 아래 내용은 Quick Start(https://spring.io/quickstart/)의 내용을 활용한 내용 들이다. Spring | QuickstartSpring Quickstart Guide What you'll build You will build a classic “Hello World!” endpoint which any browser can connect to. You can even tell it your name, and it will respond in a mor..
2020.06.15 -
이번 포스트에서는 SpringFramework의 기본적인 특징에 대해 살펴보자. 스프링이란? Framework스프링이란 자바 애플리케이션 개발을 위한 프레임워크이다.여기서 프레임워크라는 멋진 용어가 등장하는데 프레임워크란 사전적으로는 뼈대 혹은 틀을 의미하며 프로그래밍에서는 비지니스 로직이 빠진 반제품 상태의 애플리케이션 정도로 해석된다.프로그램이 아니더라도 우리는 일상생활에서 많은 프레임워크를 접한다.예를 들어 아주 좋은 발표 주제가 생각났고 이를 발표하기 위한 자료를 만든다고 생각해보자. 전체적인 문서의 구조도 잡아야 하고 효율적으로 내용을 전달하기 위해 여러가지 복잡한 기능들이 떠오를 것이다. 이때 우리는 습관적으로 파워포인트를 찾는다.우리는 왜 파워포인트를 찾을까요? 파워포인트가 없다고 해서 ..
01. Spring Framework이번 포스트에서는 SpringFramework의 기본적인 특징에 대해 살펴보자. 스프링이란? Framework스프링이란 자바 애플리케이션 개발을 위한 프레임워크이다.여기서 프레임워크라는 멋진 용어가 등장하는데 프레임워크란 사전적으로는 뼈대 혹은 틀을 의미하며 프로그래밍에서는 비지니스 로직이 빠진 반제품 상태의 애플리케이션 정도로 해석된다.프로그램이 아니더라도 우리는 일상생활에서 많은 프레임워크를 접한다.예를 들어 아주 좋은 발표 주제가 생각났고 이를 발표하기 위한 자료를 만든다고 생각해보자. 전체적인 문서의 구조도 잡아야 하고 효율적으로 내용을 전달하기 위해 여러가지 복잡한 기능들이 떠오를 것이다. 이때 우리는 습관적으로 파워포인트를 찾는다.우리는 왜 파워포인트를 찾을까요? 파워포인트가 없다고 해서 ..
2020.06.09 -
이번 포스팅에서는 Legacy 기반의 스프링 프로젝트 생성에 대해서 다룬다. Legacy의 사전적 의미는 "유산" 정도 되는데 어떻게 보면 유구한 역사를 띄고 있다고 해석할 수 있으나 프로그래밍 영역에서는 많은 경우 "원래 부터 있던 좀 구닥다리의..." 라는 뉘앙스를 많이 풍긴다. 왜 우리는 구시대의 유물인 Legacy를 하려고 드는가? 처음에는 STS(Spring Tool Suite)를 이용해서 프로젝트를 만들 때 당연히 Legacy라는 단어를 사용하지 않았다. 그런데 새로운 개발 방식인 Boot를 밀기 위해서 노골적으로 이전 개발 방식에 대해 Legacy라는 모멸적인 단어를 부여하며 더 이상 사용하지 않기를 권장하고 있다. 심지어 최근 툴인 STS 4.X 이상 부터는 아예 Legacy 프로젝트 생성..
Hello Legacy Spring이번 포스팅에서는 Legacy 기반의 스프링 프로젝트 생성에 대해서 다룬다. Legacy의 사전적 의미는 "유산" 정도 되는데 어떻게 보면 유구한 역사를 띄고 있다고 해석할 수 있으나 프로그래밍 영역에서는 많은 경우 "원래 부터 있던 좀 구닥다리의..." 라는 뉘앙스를 많이 풍긴다. 왜 우리는 구시대의 유물인 Legacy를 하려고 드는가? 처음에는 STS(Spring Tool Suite)를 이용해서 프로젝트를 만들 때 당연히 Legacy라는 단어를 사용하지 않았다. 그런데 새로운 개발 방식인 Boot를 밀기 위해서 노골적으로 이전 개발 방식에 대해 Legacy라는 모멸적인 단어를 부여하며 더 이상 사용하지 않기를 권장하고 있다. 심지어 최근 툴인 STS 4.X 이상 부터는 아예 Legacy 프로젝트 생성..
2020.05.15 -
gmail을 이용해 smtp를 이용하려는 경우 아래와 같이 코드를 작성할 수 있다. @Bean public JavaMailSenderImpl mailSender() { JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost("smtp.gmail.com"); sender.setPort(587); sender.setUsername("사용자 이메일"); // gmail 로그인 아이디 sender.setPassword("사용자 암호"); // gmail 로그인 암호 sender.setDefaultEncoding("utf-8"); Properties javaMailProperties = new Properties(); javaMailPropert..
2단계 인증 상태에서 smtp를 이용한 gmail 발송gmail을 이용해 smtp를 이용하려는 경우 아래와 같이 코드를 작성할 수 있다. @Bean public JavaMailSenderImpl mailSender() { JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost("smtp.gmail.com"); sender.setPort(587); sender.setUsername("사용자 이메일"); // gmail 로그인 아이디 sender.setPassword("사용자 암호"); // gmail 로그인 암호 sender.setDefaultEncoding("utf-8"); Properties javaMailProperties = new Properties(); javaMailPropert..
2019.07.16 -
오류 메시지: Archive for required library: '사용자별_메이븐_경로/org/springframework/spring-context/5.1.7.RELEASE/spring-context-5.1.7.RELEASE.jar' in project 'temp' cannot be read or is not a valid ZIP file 원인: 스프링은 Maven을 통해서 필요한 라이브러리의 의존성을 파악한다. 그런데 네트워크 상황이 좋지 않은 상태에서 라이브러리를 다운받다 보면 라이라이브러리가 깨지는 현상이 종종 발생한다. 특히 무선랜 환경에서 그렇다. 대책: 이 경우는 이미 잘못 다운로드된 파일을 삭제하고 다시 받는 수 밖에 없다. 사용자별_메이븐_경로(기본은 c:\users\사용자명\.m2\..
[오류처리]cannot be read or is not a valid ZIP file오류 메시지: Archive for required library: '사용자별_메이븐_경로/org/springframework/spring-context/5.1.7.RELEASE/spring-context-5.1.7.RELEASE.jar' in project 'temp' cannot be read or is not a valid ZIP file 원인: 스프링은 Maven을 통해서 필요한 라이브러리의 의존성을 파악한다. 그런데 네트워크 상황이 좋지 않은 상태에서 라이브러리를 다운받다 보면 라이라이브러리가 깨지는 현상이 종종 발생한다. 특히 무선랜 환경에서 그렇다. 대책: 이 경우는 이미 잘못 다운로드된 파일을 삭제하고 다시 받는 수 밖에 없다. 사용자별_메이븐_경로(기본은 c:\users\사용자명\.m2\..
2019.05.11 -
path variable이 email 주소로 끝날 경우 스프링은 '.'뒤를 확장자로 인식해서 제외시킨다. 즉 user/abc@def.com 로 데이터가 오면 user/abc@def만 남는다. 이를 방지하기 위해서 path variable에 아래와 같이 설정한다. @GetMapping(value="/session/userinfo/{userId:.+}" ) public Map getUser(@PathVariable String userId) { logger.trace("getUser: {}", userId); } 하지만 일부 이메일 주소(.com 등)은 여전히 아래의 오류메시지와 함께 406 오류가 발생한다. org.springframework.web.servlet.mvc.support.DefaultHand..
path variable과 email 전송path variable이 email 주소로 끝날 경우 스프링은 '.'뒤를 확장자로 인식해서 제외시킨다. 즉 user/abc@def.com 로 데이터가 오면 user/abc@def만 남는다. 이를 방지하기 위해서 path variable에 아래와 같이 설정한다. @GetMapping(value="/session/userinfo/{userId:.+}" ) public Map getUser(@PathVariable String userId) { logger.trace("getUser: {}", userId); } 하지만 일부 이메일 주소(.com 등)은 여전히 아래의 오류메시지와 함께 406 오류가 발생한다. org.springframework.web.servlet.mvc.support.DefaultHand..
2019.04.18