부제: Spring으로 JDBC연동하기, Spring으로 DB조회하기 ★관련 링크Spring과 DB이야기 - 2. JdbcTemplate에서의 UPDATE, INSERT Spring과 DB이야기 - 3. Transaction 처리 JDBC의 구현과 DataSource JAVA를 활용하여 애플리케이션을 개발할 때, DB접근이 필요하면 보통 JDBC를 쓴다. JDBC를 사용해본 사람이라면 아래와 같은 방식으로 개발했을 것이다. public Student getSingleStudent (String studentNum) throws SQLException { Student student; try(Connection conn = DriverManager.getConnection ("jdbc:oracle:this..
부제: IntelliJ에서 S3 연동하기, Spring Boot AWS 연동 이번 포스팅에서는 Spring Boot에서 Spring Cloud AWS를 활용하여 S3를 연동하는 법을 알아보겠다. 절차는 크게 3가지(의존성 설정, Properties 파일 설정, 구현)로 나눌 수 있다. 1. 의존성 설정 Spring Cloud AWS를 활용하면, 의존성만 추가해도 간편하게 AWS의 모든 기능을 활용할 수 있다는 장점이 있다. 아래 내용을 build.gradle에 추가하자. (버전은 알아서 적절히 넣도록 한다.) 12compile("org.springframework.cloud:spring-cloud-aws-context:${springCloudVersion}")compile("org.springframew..
이런 간단한 문제로 며칠을 헤맸다는 사실이 매우 창피하지만, 같은 실수를 반복하지 않기 위해 삽질로그를 남긴다. Spring boot & thymeleaf로 다중 파일업로드를 처리하려면, 몇가지 간단한 절차만 수행하면된다. 1. .properties 설정 2. html 개발 3. java 개발 1. .properties 설정 설정을 하지 않아도 상관 없지만, application.properties 파일을 열어 아래와 같이 추가해주면 좋다. multipart.maxFileSize=5MB multipart.maxRequestSize=5MB 최대 허용 파일 크기를 5MB로 넉넉하게 잡은 것이다. Default값은 1MB이다. 2. html 개발 (화면 개발) 태그를 이용하여 개발하면 된다. 다중 파일업로드를..
부제: 인텔리J에서 JUnit 생성하기. 인텔리J에서 단위테스트 수행하기. Spring에서 효과적인 단위테스트 수행을 위해서는 JUnit을 사용하면 좋다. 이 포스팅에서는 Intelli J(인텔리 J)에서 JUnit을 생성하는 법을 알아보도록 하겠다. 1. build.gradle 파일에 의존성 추가 위 그림과 같이 의존성을 추가한다. 2. JUnit 생성 테스트할(JUnit을 생성할) 컨트롤러로 이동하여, Class Name에 커서를 올린 후 Alt+Enter를 누르면 위 그림과 같이 메뉴가 등장한다. Create Test를 누르면 아래와 같은 창이 팝업된다. 필요한 SuperClass가 있으면 기입하거나, generate하고 싶은 메소드를 체크하여 하단의 OK를 누르면 JUnit이 생성되는 것을 확인할..
기술면접에 대비하여 정리한 내용 중, 하나의 포스팅으로 제작하기에는 내용이 짧거나, 상세히 작성이 어려워(나의 능력부족) 포스팅으로 작성하지 못한 질문 모음. 1. Servlet에 대해 답변해 보세요. Servlet: 자바 플랫폼에서 웹 앱을 개발할 때 사용하는 핵심기술. 컨트롤러와 뷰의 역할 분담이 가능해진다. 자바 API를 모두 사용할 수 있으며 다양한 서버 환경에서 실행 가능하다. 스레드를 기반으로 한다. Servlet Container: Servlet을 서버에서 실행하기 위한 서버 프로그램(서버는 서블릿 자체를 직접 실행할 수 없기 때문). JVM을 내장하고 있다. 2. 서블릿의 라이프 사이클에 대해 설명하세요. init(): 컨테이너는 서블릿 인스턴스를 생성한 다음 init() 메소드를 호출한다..
부제: 인텔리J로 properties파일 인코딩 바꾸는 법, 인텔리J 한글 깨짐 현상 해결 오늘도 Spring boot 실습 도중.. i18n 한번 먹여보겠다고 과감하게 properties파일 생성.. (얼마나 대단한 세계적 웹페이지를 만드려고..........) ▶ 여기까지는 순조로웠었는데.. 문제는 messages_ko.properties에 지정한 한글메시지들이 마구 깨지기 시작했다. 본능적으로 Encoding문제일 것이라고 직감했다. 혼자 낑낑대지 않고 과감히 구글링해서 방법 GET 위와 같이, Setting > Editor > File Encodings에서 properties가 저장된 경로를 찾아, 붉은색 표시를 한 곳을 UTF-8로 바꿔주면 된다. 생각보다 간단하게 해결되었다. (1시간 반을 해..
'프레임워크(Framework)'라는 용어는 정말 많이 쓰이지만, 딱 정의를 내리기엔 애매한 용어같다. 먼저, 위키피디아 한국어판의 '소프트웨어 프레임워크'에 대한 정의는 아래와 같다. "소프트웨어 환경에서 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조" '라이브러리(Library)'라는 용어의 경우에는 프레임워크에 비해 비교적 정의가 명확한데, 일단 위키피디아 한국어판의 정의는 아래와 같다. "소프트웨어 개발에 쓰이는 하부 프로그램들의 모임" 즉, 자주 쓰일 만한 기능들을 (따로 구현하여) 모아 놓은 유틸(혹은 클래스)의 모음이라고 할 수 있다. 라이브러리와 프레임워크, 이 둘은 애플리케이션의 틀과 구조를 결정한다는 측면에서 활용도가 상당히 유사하다. 그래서 이를 구분하기가 굉장히 힘들..