Memories in SeoK

기억하고 싶은 것들, 기억해야 하는 것들

개발 14

따라가며 만들기 + 마이그레이션 연습 (Spring Boot, AWS)

Java Version 관련VM optionGradle 관련Git 관련application.properties 관련Spring Security 관련Test 관련Domain, Repository 관련Javascript 관련기억을 되새길 겸, 블로그 콘텐츠도 얻을 겸 몇 년 전에 작성된 책에 (이동욱 저 - 스프링 부트와 AWS로 혼자 구현하는 웹 서비스) 있는 예제 프로젝트를 최신 프레임워크와 라이브러리로 대체해서 따라 해보고 있다(cf. https://github.com/Seo-Kim/example-book-aws-springboot)앞으로 이 글을 계속 수정해 가며 작성해 나갈 예정이다 (2024.06.15.) 프로젝트 작성까지만 적고 이후 프로젝트 배포부터는 다른 글에 이어 적기로 했다* 궁금한 점,..

개발/자바 Java 2024.06.16

[Ubuntu] 따라하기 + 배포 연습 (Spring Boot)

[ 이동욱 저 - 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 ] 책의 예제를 최신 프레임워크와 라이브러리로 대체하여 따라 하기 중 만들기에 (프로젝트 작성에) 집중한 이전 글에 이어서 배포 관련 부분을 해당 글에 작성합니다 따라가며 만들기 + 마이그레이션 연습 (Spring Boot, AWS)기억을 되새길 겸, 블로그 콘텐츠도 얻을 겸 몇 년 전에 작성된 책에 (이동욱 저 - 스프링 부트와 AWS로 혼자 구현하는 웹 서비스) 있는 예제 프로젝트를 최신 프레임워크와 라이브러리로 대체해mem-in-seok.tistory.com AWS를 사용할 수 없어서 별도 리눅스 서버를 구해서 배포할 예정인데, 서버에 대해 모르는 것이 많기도 하고, 배포 연습한 서버를 열어둘 수도 없어서 대신 기본적인 내용과 서버 ..

개발/자바 Java 2024.06.16

[Java] Spring Boot Test - IllegalArgumentException: Failed to find servlet [] in the servlet context

Spring Boot 3.2.5에서 (Spring Security 6.2.4) random port로 Mock mvc test 진행 시 IllegalArgumentException 발생java.lang.IllegalArgumentException : Failed to find servlet [] in the servlet context main 쪽에 구성한 Web Security Configuration의 (@EnableWebSecurity) SecurityFilterChain을 제대로 못 불러오는(?) 어떤 버그가 있는 것 같고, 마침 며칠 전에 해결이 된 것 같아 간략히 기록해 둔다 (영어를 읽기 힘든 개발자라.. 슬픔...ㅠㅠ)cf. Spring Security GitHub Issue (접은 글은 ..

개발/자바 Java 2024.06.09

[Java 중급] deprecated Spring Security Configuration

WebSecurityConfigurerAdapter체인 호출 방식authorizeRequests() 메서드antMatchers(), mvcMatchers(), regexMatchers() 메서드권장에 따라 구현한 예시WebSecurityConfigurerAdapterconfigure 메서드를 Overriding하여 웹 보안 설정을 구성할 때 사용했던 기본 클래스(보안 설정 예시: 특정 URL에 대한 접근 권한 설정, 폼 로그인, HTTP Basic 인증 등) Spring Security 5.7부터 클래스가 deprecated, 6.2 현재 removed대신 5.4부터 소개된 더 유연하고 모듈화된 Component 구성을 사용Component 기반으로 설정을 모듈화하면 세밀한 제어와 상황에 따라 필요한 설..

개발/자바 Java 2024.06.06

[IntelliJ] 인텔리제이 초기 설정 / 옵션 (개인 기록용)

VM 옵션SettingsLombok 설정IntelliJ IDEA Community Edition 2024.1.1VM 옵션최대 점유 메모리 설정: 총 메모리의 약 1/4 정도 [ ToolBox > 도구 > (IntellJ) ... > 설정 > 구성 > 최대 힙 크기 ] [ IntelliJ 메뉴 > Help > Edit Custom VM Options ] > 열린 파일에 문구 추가 > IDE 재시작 [ IntelliJ 설치 위치 (...\JetBrains\IdeaIC2024.1) ] > idea64.exe.vmoptions 파일에 문구 추가 후 저장-Xmx4096mSettings[ 메뉴 > File > Settings ] 단축키: Ctrl + Alt + S코드 자동 완성 (코드 검색) 대소문자 구분 해..

개발/자바 Java 2024.05.27

[jQuery] 코드 블럭 복사하기 - (문제 해결) 플러그인과 함께 사용하기

이전 글 요약   [jQuery] 코드 블럭 복사하기 - (문제 인지) 플러그인들과의 충돌 clipboard.js 라이브러리를 활용하여 코드 블록의 내용을 복사하는 버튼을 구현했으나 "저작권자 표시" 플러그인과의 충돌이 있음을 발견하고 문제를 해결해 가는 과정을 적었습니다 빠른 답을 찾 mem-in-seok.tistory.com "마우스 오른쪽 클릭 방지" 플러그인 때문에 코드 블록의 소스를 복사할 수 없음clipboard.js 라이브러리를 활용해 코드 블럭 소스를 복사하는 버튼 구현"저작권자 표시" 플러그인 때문에 정상 동작하지 않음 수정 계획 일단 (플러그인 소스 수정) 이단 (코드로 강제 텍스트 선택) 끝날 때까지 끝난 게 아니다 (복사 이벤트 발생시키기)수정 계획일단..

개발/자바 Java 2024.05.18

[jQuery] 코드 블럭 복사하기 - (문제 인지) 플러그인들과의 충돌

clipboard.js 라이브러리를 활용하여 코드 블록의 내용을 복사하는 버튼을 구현했으나 "저작권자 표시" 플러그인과의 충돌이 있음을 발견하고 문제를 해결해 가는 과정을 적었습니다 빠른 답을 찾으신다면 다음 글로 이동 바랍니다   [jQuery] 코드 블럭 복사하기 - (문제 해결) 플러그인과 함께 사용하기 수정 계획 일단 "마우스 오륵쪽 클릭 방지" 플러그인 소스를 수정할 수 있는 게 최선 이단으로 코드 블럭 내부 텍스트를 Script로 선택하는 방법을 찾아보고, 최종 삼단은 최악으로, 플러그인 사용을 포기하고 직접 구 mem-in-seok.tistory.com "마우스 오른쪽 클릭 방지" 플러그인의 불편함 복사 버튼 따라 만들기 (clipboard.js 활용) 이왕 ..

개발/자바 Java 2024.05.17

[Java 초급] printf 메서드 서식 지정자

주로 print(), println() 메서드를 사용하기 때문에 사용법을 잘 까먹게 된다변수를 특정 형식에 맞춰 (formatting) 출력해야 할 때 printf() 메서드를 사용하면 편하다"형식 문자열" 뒤에 입력할 값을 파라미터로 이어 넣어주면 되고, "문자열"에 있는 서식 지정자 개수보다 파라미터 변수의 개수가 많거나 같으면 정상 동작한다printf( "[서식 지정자를 포함한 형식 문자열]", [파라미터1], [파라미터2], ... );다양한 서식 지정자%% (Escape 문자 '%' 출력)%n, \n (줄 바꿈)%s (문자열)%5s (문구 앞에 공백을 채워서 5자리로 고정)%-2s (문구 뒤에 공백을 채워서 2자리로 고정)%.3s (3자리 이후 문자를 잘라냄)공백 외에 다른 문자로 채우는 방법과..

개발/자바 Java 2024.05.14

[Java 초급] 접근 제한자

클래스, 생성자, 메서드, 필드에 (변수) 접근하거나 호출할 수 있는 범위를 지정한다public: 접근에 제한이 없다가장 흔히 사용하고 있다protected: 동일 패키지 내에서, 그리고 상속받은 자녀 클래스에서 접근 가능상속을 받았다면 다른 클래스에 있더라도 접근할 수 있다최상위 클래스에는 적용할 수 없다 (내부 클래스에는 적용 가능)package-private: 동일 패키지 내에서만 접근 가능접근 제한자 자리에 아무것도 입력하지 않으면 적용된다class MyClass { // 기본 접근 제한자로 정의된 클래스 void myMethod() { // 기본 접근 제한자로 정의된 메서드 //... do Something }}흔히 "default"라고도 부르는데 공식 용어는 아닌 것..

개발/자바 Java 2024.05.14

[Java 입문] Naming (명명, 命名) 규칙

Java 자체 규칙 개발자 불문율일상에서도 그렇지만 특히 프로그래밍에서 이름을 붙이고, 사용하는 것은 꽤 중요한 문제이다 그리고 자바 언어는 네이밍 규칙이 꽤 엄격한 편에 속한다 따라서 실제 개발을 시작하기 전 몇몇 기초적인 네이밍 규칙을 알아둔다면 도움이 될 것이다(클래스, 메서드, 패키지 등 Java 필수 객체들에 대한 기초 개념은 갖고 있다고 가정하겠다)Java 자체 규칙안 지키면 작성한 프로그램이 의도한 대로 동작하지 않거나, 에러가 발생하거나, 아예 실행이 안될 수 있다 파일명과 똑같은 (대소문자 구분) 이름을 가진 클래스가 있어야 한다 Java가 처음 실행할 때 파일명과 같은 이름을 가진 클래스에 있는 "main" 메서드를 읽는 것이 기본 설정이기 때문이다 물론 설정은 변경이..

개발/자바 Java 2024.05.14

[Java 입문] JDK (Java) 설치 및 환경 변수 확인

JDK 다운로드와 관련해서는 이전 글을 참조하세요   [JAVA 입문] JRE? JDK? 기초 용어 정리와 다운로드 JVM (Java Virtual Machine): Java 프로그램을 실행할 때 사용되는 가상 머신. OS에 무관하게 같은 동작을 보장하는 JAVA의 특징은 JVM이 있기에 가능한 것. class 파일에 있는 바이트코드를 OS의 기계어로 번 mem-in-seok.tistory.com Java 설치 상태 확인 배포 JDK 다운로드 설치 파일 실행 시스템 환경 변수 확인 정상 설치 확인Java 설치 상태 확인현재 Java 설치가 되어 있는지 확인합니다java -version배포 JDK 다운로드Eclipse 재단의 Temurin JDK를 설치할 것입니다 설치형..

개발/자바 Java 2024.05.11

[Java 입문] JRE? JDK? 기초 용어 정리와 다운로드

용어 정리다양한 JDK들Java 에디션용어 정리JVM (Java Virtual Machine): Java 프로그램을 실행할 때 사용되는 가상 머신OS에 무관하게 같은 동작을 보장하는 JAVA의 특징은 JVM이 있기에 가능한 것이다. class 파일에 있는 바이트코드를 OS의 기계어로 번역하는 역할을 한다.JRE (Java Runtime Environment): Java 프로그램을 "실행"하는 데 필요한 도구 또는 환경 요소의 모음JVM, Java Classloader (class 파일을 불러와 바이트코드를 JVM에 전달하는 역할), JDBC, JNDI 등을 포함한다.JDK (Java Development Kit): Java 프로그램을 "작성, 개발"하는 데 필요한 도구들의 모음JRE와 함께 Compile..

개발/자바 Java 2024.05.11

[노트패드++] JAVA 컴파일 및 실행

Java 설치 확인 플러그인 설치 실행 스크립트 입력 스크립트 실행Java 설치 확인플러그인 설치Plugins > Plugins Admin > NppExec 이전 글의 "플러그인" 단락 참고   [노트패드++] 환경 설정 또 습관이 나온다.. 뭘 써야 하나 한참 고민하고 있다 쓸거리가 한참 많으니 뭐가 됐던 시작을 해야 하는데 갈팡질팡 하고 있는 나는 내가 봐도 한심하면서 안타깝다 일단 몸..이 아니고 뇌부터 mem-in-seok.tistory.com 실행 스크립트 입력Plugins > NppExec > Execute NppExec Script (F6) > 컴파일 후 실행하는 명령 스크립트 입력 > Save//환경변수 등 상세 설명은 NppExe..

개발/자바 Java 2024.04.08

[노트패드++] 환경 설정

노트패드++ Notepad++ 설정 Settings > Preferences 서식 설정 Settings > Style Configurator 플러그인 Plugins > Plugins Admin 유용한 기능 (Useful Tips)또 습관이 나온다.. 뭘 먼저 쓸까 한참 고민하고 있다 쓸거리가 한참 많으니 뭐가 됐던 시작을 해야 하는데 갈팡질팡 하고 있는 나는 내가 봐도 한심하면서 안타깝다 일단 몸..이 아니고 뇌부터 풀어볼 겸 생각할 거리가 별로 없는 아주 기본적이고 기초적인 것부터 시작해야겠다는 굳은 결심을 하곤 써 내려가는 글노트패드++ Notepad++시중에서 찾을 수 있는 개발 도구는 아주 다양하고, 실제로 사용하고 있는 도구도 여러 가지다 그 중 IDE 다음으로 가장 자주 사용하는 ..

개발/자바 Java 2024.04.05