프로그래밍 31

Spring boot 3.2.x 버전에서 Spring Security 기본틀 구현

최신 릴리즈 버전인 3.2.x로 스프링 시큐리티를 구현한 포스트가 너무 없다. 이 때문에 해당 프로젝트 초기에 심적부담이 매우 컸던 기억이 난다. 우여곡절 끝에 프로젝트를 마무리했지만 스프링에 대한 지식의 흔들림이 느껴졌다. 이것이 '임포스터 증후군'의 시작 아닐까 싶다. 정상적으로 작동한다고 외면할 일이 아니라 스프링에 대한 전반적인 재학습이 필요함을 절실히 느낀다. 김영한 선생님 강의 충동구매 ㄱㄱ java 17 spring boot 3.2.x 1. SecurityConfig package com.org.mgt.common.config; import jakarta.servlet.DispatcherType; import lombok.RequiredArgsConstructor; import org.spr..

Spring 환경에서 네이버 클라우드 플랫폼(NCP) 파일서버 연동 구현 (Feat. AWS S3)

Azure에서 NCP으로 교체하는 요청이 있었다. 파일서버 연동은 처음이라 공식홈페이지의 샘플코드를 보면서 작업을 했지만 도통 뭔소린지 알 수 없어 꽤나 걱정이 많았던 작업이었다. 약 1주정도 무한 구글링을 하면서 필요한 지식들을 조각조각 모아서 테스트를 성공적으로 마쳤다. 너무 큰 고통을 받고나니 Spring과 AWS에 대한 공부가 많이 필요하다는 것을 느꼈다. java 17 Spring boot 3.2.x 1. build.gradle 설정 implementation 'com.amazonaws:aws-java-sdk-s3:1.12.638' 2. 클래스 구현 package com.org.mgt.common.util; import com.amazonaws.SdkClientException; import c..

permission denied 권한오류 해결법 Mac M1

필자는 mac m1으로 개발공부를 하고있는 매우 public한 개발자다. 최근에 react 공부를 깊게 공부하면서 자연스럽게 terminal을 자주 사용하는데, 망할 권한에러때문에 진도를 못빼서 매일 1시간이상 날려먹어서 굉장히 스트레스를 받아 다음번엔 검색하기 짜증나서 글로 정리한다. 에러이름은 대부분 permission denied 와 유사하다. m1 이외의 mac은 어떤지 모르겠지만 m1에서는 sudo 명령어를 사용해야만 npm install이 되고있다. 이 현상은 에러는 아닌것같지만 아마 파일의 사용자가 자동으로 root로 설정되어 있는것 같다. 해결법은 파일의 소유자를 root에서 mac의 사용자로 변경해주면 끝이다. 하위 폴더들도 모두 적용시키는 것이 정신건강에 이롭다. terminal에서 명..

vim ~/.zshrc 자주쓰는 명령어 정리

terminal에서 vim을 쓸 때마다 구글링에 시간을 너무 많이 쓴다. 최소한 사용방법 정도는 알아둬야겠다는 생각이 든다. vim를 써보며 자주썼던 명령어를 정리해봤다. ~/.zshrc vim으로 열기 vim ~/.zshrc vim 텍스트 변경 시작 i vim 텍스트 변경 종료 esc vim 텍스트 변경사항 저장 :w vim 텍스트 변경사항 저장하고 vim 종료 :wq vim 텍스트 변경사항 저장하지 않고 vim종료 :q! ~/.zshrc 소스 반영하기 source ~/.zshrc

Spring 6 과 Spring Boot 3.0 의 변경사항 정리

회사 프로젝트 프레임워크로 Spring boot 3 채택! 하지만 Thymeleaf 에 대한 팀원들의 숙련도가 낮았기때문에 Servlet 기술(JSP, JSTL, Tiles 등)를 활용하기로 했다. 하지만 Spring 6 에서 Servlet 기술들은 지원종료됐다는 사실을 모른 채, 하루종일 열나게 삽질했다. 삽질하고 이 글을 읽어보니 개발자가 패치노트를 항상 꾸준히 봐야하는 이유를 절실히 체감한다. 사실 이 덕분에 코딩이 더 재밌어졌고 앞으로도 더욱 재미있어질 것 같다. Spring 5.x -> 6.0 변경사항 JAVA 17기반으로 변경 일부 JAVA EE API 지원 종료 XML이 점차적으로 Spring에서는 사라질 예정이다. RPC 지원 종료 새로운 AOT 엔진 도입 @Inject 같은 JSR에서 지..

인텔리제이로 전자정부프레임워크 적용 도전

인텔리제이가 이클립스보다 생산성이 좋다고 생각하기때문에 3시간정도 인텔리제이로 전자정부프레임워크 적용을 시도했다. 하지만 처참하게 실패. 특정 전자정부 메이븐 디펜던시를 호출하지 못하고 있다. 이유를 모르겠지만 약간의 야근과 함께 구글링을 해보니 전자정부프레임워크 공식홈페이지에 인텔리제이 적용가이드가 있었다. 일단 이클립스와 인텔리제이는 의미는 같지만 명칭을 다르게 쓰는 용어가 있어서 이 부분을 인지해야했다. 이클립스: 워크스페이스 > 프로젝트 인텔리제이:프로젝트 > 모듈 대충 이런 개념이다. 그래서 전자정부프레임워크를 적용한 프로젝트를 만들고 해당 모듈을 적용해야 한다. 내일은 좀 일찍 출근해서 가이드대로 다시 도전해보고 오전내로 성공하지 못하면 이클립스로 진행해야겠다.

리눅스 서버에서 한글 깨질 때 (Tomcat 9, Ubuntu)

로컬호스트에서 정상적으로 작동했던 POST 전송이 서버에서는 400에러가 발생했다. putty로 해당 서버를 접속했고 apache-tomcat-9.0.62/logs 경로로 이동 후, tail -f catalina.out 커맨드를 입력하여 실시간로그를 분석했다. 로그에서는 로컬호스트에서 정상적으로 출력되는 한글이 서버에서는 한글깨짐현상이 발생하는 것을 확인했다. 이 현상은 다음과 같은 방법으로 해결했다. 서버에 설치한 톰캣 경로 /bin으로 이동 후 setenv.sh 파일 생성 후 아래의 코드를 입력한다. #!/bin/bash JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=\"utf-8\"" 이후 서버를 재기동하면 한글이 정상적으로 POST전송 되는 것을 확인 할 수 있다. (이걸 몰..

Tailwind CSS IntelliSense 설치해도 자동완성 안될 때

1. VSCode 설정창 오픈 macOS : ⌘ + , Windows : Ctrl + , Linux : Ctrl + 2. 설정 값 변경 quickSuggestions 키워드로 검색 후 다음과 같이 설정을 변경한다. editor.quickSuggestions By default VS Code will not trigger completions when editing "string" content, for example within JSX attribute values. Updating the editor.quickSuggestions setting may improve your experience: "editor.quickSuggestions": { "strings": on }

[vscode] 영어가 이상하게 입력될 때 해결법(자간이 크게 벌어질 때)

vscode는 없으면 개발 못할 정도로 주로 쓰고 있는 개발 에디터이다. 그런데 간혹 위 이미지처럼 영어가 이상하게 입력되는 경우가 있다. 어떤 검색어로 검색해야할 지도 몰라서 한참을 고생하다가 겨우 방법을 찾았다. WIndow : [art] + [=] Max : [option] + [=] 해당 단축키를 입력하면 정상으로 돌아온다.