코딩 개발/Spring

코딩 개발/Spring

Ibatis/Mybatis에서 ##, #{}, $$, ${} 차이점 (parameter 사용)

Ibatis 나 Mybatis를 이용하여 DB연동을 쉽게 하는 방법이 있습니다. Ibatis가 이전 버전이고 Mybatis가 최신? 버전입니다. 이 둘 사이에는 SQL문에서 parameter를 작성하는 방식이 다르더라고요. Parameter 작성 법 1. #Parameter#/ #{Parameter} 이 방법을 사용하는 이유에 대해서 말씀드리겠습니다. 변수를 이용한 바인딩 처리로, 재사용성이 높으며, $를 이용한 변수 사용과는 다르게 String 자료형이 오면 자동으로 ' ' 작은따옴표 처리를 해주게 됩니다. #을 이용한 변수 사용을 하게 되면 PreparedStatement를 사용하게 됩니다. #IBatis SELECT * FROM worker WHERE name = #parameter# #MyBati..

코딩 개발/Spring

Spring Boot 프로그램 AWS EC2에 배포하기 (feat. RDP 사용법)

저는 AWS를 윈도우OS로 생성해서 RDP를 이용해서 입장할 예정입니다. RDP로 인스턴스 연결하기 EC2 인스턴스를 누르면 상단에 이러한 것이 있을 겁니다. 연결을 누르면 이러한 창이 나오게 됩니다. 원격 데스크톱 파일 다운로드를 클릭해서 rdp 파일을 다운로드합니다. pem key를 생성하고 pem key를 저장하고 암호 가져오기를 눌러 그 파일을 확인하면 비밀번호를 줍니다. (키페어 생성) rdp 파일을 클릭하여 열면 비밀번호를 작성하라고 합니다. (위에서 가져온 비밀번호를 복사 붙여넣기 합니다) 작성하면 AWS의 윈도우 컴퓨터에 접속할 수 있습니다. 이렇게 말이죠. EC2 인스턴스 설정, jdk 설치 및 프로그램 실행 인바운드 설정 window Defender 방화벽 고급 설정 클릭 인바운드 규칙..

코딩 개발/Spring

Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\ADMINI~1\AppData\Local\Temp\2\

에러 분석 AWS EC2 에서 SpringBoot로 만든 어플리케이션을 실행하려고 했는데 이러한 에러가 발생했습니다. Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\ADMINI~1\AppData\Local\Temp\2\ tempDir을 생성할 수 없다는 내용입니다. tmpdir은 저 폴더에 set 되야한다고 합니다. 그렇다면 어떻게 해결해야 할까요? 에러 해결 아무래도 저 폴더가 있는지 없는지 확인해봐야겠습니다. EC2에 접속해서 C:\Users\ADMINI~1..

코딩 개발/Spring

Spring Boot - Transaction (트랜젝션)

이전에 Java&Oracle 편에서 Transaction에 대하여 알아보았습니다! https://pabeba.tistory.com/139 Java & ORACLE - TRANSACTION TRANSACTION 더 이상 나눌 수 없는 작업단위, 데이터베이스의 상태를 변경시키기 위해 수행하는 업무단위입니다. TCL ( Transaction Control Language ) commit과 rollback을 이용하여 데이터 작업을 할 때 문제가 pabeba.tistory.com 이번에도 비슷한 예시를 보여드리려고 합니다. TRANSACTION (@Transactional) 더 이상 나눌 수 없는 작업단위, 데이터베이스의 상태를 변경시키기 위해 수행하는 업무단위입니다. Spring Boot 에서는 트랜젝션 동작이..

코딩 개발/Spring

SpringBoot - interceptor (feat. Filter& AOP)

스타크래프트 케리어에서 나오는 공격하는 요격기가 interceptor입니다. 이처럼 어떠한 기능을 실행하기 전에 요격해서 실행을 할지 말지 막아주는 것을 interceptor라고 합니다. 그런데 filter와 interceptor, AOP는 어떠한 차이점이 있는지 간단히 알아보고 interceptor 예시를 보겠습니다. Filter, Interceptor, AOP 차이 동작이 이루어지는 과정에서 그 동작의 전후로 공통적으로 처리해야 할 기능들이 존재합니다. Logging, 보안, 로그인 인증, 인코딩 변환 등등이 있습니다. 중복을 줄이고자 이러한 기술들이 나왔는데요. 위의 세 가지가 어떤 차이가 있는지 알아보겠습니다. 일단 동작의 순서는 Filter - Interceptor - AOP - Controll..

코딩 개발/Spring

Thymeleaf - layout 나누기

기존에 JSTL로 layout을 경험해 본 적이 있기 때문에 thymeleaf의 layout은 재밌게 느껴졌습니다. import로 불러오는 것과 비슷하게 th:replace , th:fragment와 layout:fragment를 이용하여 header, footer, 본문 내용을 불러오도록 해보겠습니다. Header , Footer 제작 및 불러오기 layout이라는 틀에 내용만 붙이면 됩니다. 위에 보시면 xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" 문장도 넣어줘야 합니다. 보시면 header의 id 값을 넣은 것 보이시나요? fragments/header라고 명시하고 :: 콜론 두 개를 작성하고 할당한 아이디 값을 넣어주었습니다. footer도..

호소세
'코딩 개발/Spring' 카테고리의 글 목록