Spring 13

[Spring] MyBatis는 JavaBeans 규약을 지원한다.

MyBatis 프로젝트를 진행하고 있는데 Dto를 만들면서 기본 생성자 외에 매개변수가 있는 생성자도 같이 적으면 어떤 생성자가 호출되는지 궁금했다. 콘트롤러에서 필요한 필드들을 하나의 객체(dto)로 묶으면서 매개변수가 있는 생성자도 자연스럽게 함께 작성해 줬는데 디버그 문으로 확인해 본 결과 정작 호출되는 것은 기본 생성자였다. 이러한 내용들을 문서에서 확인해 보니 다음과 같았다.  아래는 mapper.xml에서 resultType이 map일 때 반환 객체를 어떻게 생성하는지에 대한 이야기이다. 여기서 'your application will use JavaBeans or POJOs for the domain model...'에서 관련 내용을 확인할 수 있었다. 참고로 MyBatis는  둘 다 지원한..

Spring 2025.04.09

[Spring] URL에서 정적 파일, 동적 파일 접근하기

1. 정적 파일프로젝트 루트 경로는 프로젝트명에 따라 '/ch2'까지로 되어있다. 정적파일은 src/main/webapp/resources 경로에 주로 변하지 않는 파일인 html, css, img 등을 저장해야 한다. 그 이유는 servlet-context.xml에 정적파일에 대한 GET mapping 시 정적파일 위치가 기본적으로 이렇게 잡혀있기 때문이다.  하지만 URL에서 해당 파일에 대한 요청을 할 때는 '/resources'  경로는 적지 않고 그 하위 경로부터 적는다. 이렇게 해야 접근이 가능하다. 그런데 다른 블로그에서 정적 파일들을 static 폴더 안에 관리하는 것을 봤는데 이렇게 하면 이 경로의 파일들이 정적 파일이라는 것을 명확히 알 수 있으니까 좋은 것 같다. [참고: Spring..

Spring 2025.02.20

[Spring] STS 오류 해결 모음

1. Spring MVC Project를 생성할 수 없을 때- 블로그에 첨부된 https-content.xml를 해당 경로에 추가하면 목록에 뜸 https://blog.naver.com/wisejia/223365361844 spring sts3에서 spring mvc project 안 보이는 문제 해결 (spring3 legacy 만들기)아래 내용은 중앙 정보기술인재개발원 학생들을 위해 만들었습니다. 다운로드가 실행되지 않는다면 알려주...blog.naver.com 2. invalid thread access - templates를 URL을 통해 받아오지 않고 직접 워크스페이스 경로에 추가하여 해결https://nirsa.tistory.com/405 [Spring] STS3에서 MVC Project를 찾..

Spring 2025.02.10

[Spring] 프로그램 서버 구동 오류 해결

1. 'Tomcat 8.5.84' 실행 오류: Can't find catalina.jar - Tomcat path가 잘못 되어 있는 경우 발생https://developer-minji.tistory.com/306 IntelliJ에서 Tomcat 실행 시, 'Tomcat 8.5.84' 실행 오류: Can't find catalina.jar문제 Tomcat으로 프로젝트 실행시, 아래와 같이 'Tomcat 8.5.84' 실행 오류: Can't find catalina.jar 에러가 났다. 문제 해결 찾아보니 Tomcat path가 잘못되있는 경우 발생한다고 한다. 그래서 Tomcat 구성 편집에developer-minji.tistory.com 2. apache Permission denied Cannot ru..

Spring 2024.11.21

[Spring] OAuth 2.0 원리 이해

생활코딩 님의 유튜브 [WEB2-OAuth] 강의들을 보고 정리했습니다. 1. 수업 소개accessToken은 id, pw가 아니다그들의 서비스 중 내 서비스가 필수적인 것만 부분적으로 허용accessToken 획득해서 그들의 서비스에 접근 2. 역할Resource Server 데이터 가지고 있는 서버 , Authorization Server 인증 처리 전담 (공식매뉴얼에서는 분리)Resource Owner 사용자Client 내가 만드는 서비스 3. 등록Client가 Resource Server를 이용하기 위해서는 승인을 사전에 받아야 함(register)Client ID(서비스 식별자), client secret(외부 노출되면 X; 엄청난 보안사고), authorized redirect URIs(Res..

Spring 2024.10.06

[Spring] 컴파일 과정, 의존성 추가와 플러그인 설치 차이

(아래 내용은 참고 블로그의 내용을 바탕으로 정리하였습니다.) 컴파일사용자가 작성한 소스 코드를 컴퓨터가 이해할 수 있는 언어, 즉 기계어로 번역하는 일Java 컴파일러는 Java 소스코드를 바이트 코드(byte code)로 변환한다이때 바이트 코드는 특정 운영체제나 아키텍처에 종속되지 않은 채 Java 가상머신(JVM)에서 실행된다- Interpretation이 JVM에서 컴파일된 기계어를 분석하고 실행하는 프로세스JIT(Just-In-Compiler) 컴파일러로 바이트코드를 바이너리코드(이진코드)로 변환해 속도를 줄이기도 한다javac.exe가 자바 컴파일러, java.exe가 자바 인터프리터javac.exe : 사람이 작성한 문장을 기계어로 번역(.java -> .class)java.exe : 자바..

Spring 2024.09.30

[Spring] Filter, Interceptor, AOP 비교

Filter, Interceptor, AOP는 모두 어떤 작업을 수행하기 전 또는 후에 해야 할 작업을 미리 정의해 둔 것이다. 이 전처리, 후처리의 작업이 각 메서드에서 반복적으로 사용된다면 중복코드가 많이 발생하는데, 그 공통 코드를 분리하고자 하는 목적에서 사용한다. 예를 들어 어떤 작업이 수행하는 데 걸리는 시간을 구한다고 하면, 해당 작업의 수행 전 현재 시간을 저장해 두었다가 수행 후 현재 시간에서 빼면 된다. 이때 수행 전 시간을 구하는 과정, 수행 후 시간을 구하는 과정이 각각 전처리, 후처리 작업이 된다. 1. Filter서블릿 초기화 시 init(), 처리 시 doFilter(), 서블릿 종료 시 destroy() Filter는 전처리, 후처리 작업을 모두 doFilter()에서 처리한..

Spring 2024.09.08

[Spring] 객체 지향 프로그래밍의 특징과 좋은 객체 지향 설계의 원칙 5가지, SOLID

(자바 언어가 객체 지향 언어이기 때문에 카테고리를 자바로 해야 되는 게 사실 맞지만, 스프링 프레임워크에서 개발할 때 유기적으로 연결되는 내용이기 때문에 스프링으로 지정해 놓았다.) 스프링은 자바 언어를 기반으로 하는 프레임워크이고, 자바 언어는 대표적인 객체 지향 언어이다. 따라서, 스프링을 잘 활용한다는 것은 자바 언어가 가지고 있는 객체 지향 언어의 특징들을 잘 살려낸다는 말과 같다. 객체 지향 프로그래밍의 특징은 다음과 같다.객체 지향 프로그래밍(OOP; Object-Oriented Programming) 특징추상화- 객체의 공통적인 속성과 기능을 추출하여 정의하는 것- 인터페이스: 객체의 역할만을 정의하여 객체들 간의 관계를 연결상속-기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 ..

Spring 2024.08.17

[Spring] Intellij 단축키 모음 (-ing)

IntelliJ에서 전체 단축키 모음을 확인하려면 Help > Keyboard Shortcuts PDF 로 가면 된다. 명령어macwin(이전에 실행했던 거) 실행ctrl rshift f10현재 페이지 실행ctrl shift rctrl shift f10자동 완성shift command entershift enter커서 맨앞으로 이동fn home 키커서 맨뒤로 이동fn ->end 키단어 단위로 이동option 방향키ctrl 방향키line 이동shift option 위/아래 방향키ctrl 위/아래 방향키변수 생성option command vctrl alt v삽입ctrl enteralt insert한 줄 주석command /ctrl /블록 주석ctrl shift / shift command /option co..

Spring 2024.06.26