분류 전체보기 98

컴퓨터 교체 시 필요 설치 목록 및 링크

맥 기준 1. git & homebrew https://velog.io/@wijoonwu/Mac-OS-%EC%97%90%EC%84%9C-Git-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0 맥에서 Git 설치하기 Mac OS 에서 Git 설치하기 velog.io 2. vs code https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and ..

기타 2023.05.18

네이버 파이낸셜 1차 면접 후기

코테 결과를 화요일에 알려주셨고, 해당 메일에 면접이 목요일이라고 공지되어있었다. 하지만 메일을 수요일 저녁에 봐서 사실상 면접 준비할 시간 자체가 없었다. 면접은 기술면접으로만 이루어져 있었다. 처음부터 끝까지 쭉 기술 질문 답변만 하였다. 크게 java, DB, spring, CS 정도로 나눠서 대략 55분간 진행되었다. 분명 예전에 전공에서 들었던 내용이거나, 한번쯤 사용해본 것들에 대한 내용들도 많았는데 꼬리질문으로 이어지다 보니 결국 깊이의 부족함이 얼마나 큰지 알게 되었던 것 같다. 회사마다 요구하는 방향은 다르겠지만, 지금의 나로써는 백그라운드 지식의 향상이 가장 절실하다는 것을 깨닫게 된 면접이었다. 중간에 애매하거나 잘 모르겠는 부분을 되물어보는 상황도 생겼는데(왜이랬을까 ㅋㅋㅋㅋ) 면접..

기타 2022.12.22

[Spring] Security Handler에 @Value 값 받아오기

URL의 하드코딩을 막기 위해 리팩토링을 하는 중, 에러가 났다. UriComponentsBuilder에서 @Value 의 값이 정상적으로 사용되지 않는 것을 확인하였고, 처음에는 UriComponentsBuilder의 문제라고 생각되서 단순 문자열로 만들어주었다. 하지만 똑같이 에러가 나는 것을 확인할 수 있었고, 불러온 ip의 값이 null이 되는 것을 찾아내었다. 그래서 Handler에서 값을 받는 방법을 찾아보다가, Spring의 Bean 등록 순서에 있어서의 문제라는 것을 확인하였다. 따라서 Config에서 다음과 같은 Bean을 static으로 추가해주고(static이여야 먼저 빈 등록이 되어 값을 가져올 수 있다) Config에서 Handler로 ip를 DI해주었다. @Bean public ..

java/spring 2022.12.06

[Spring] MapStruct @Mapping 에너테이션

string을 받아서 객체의 필드 값 string으로 매핑을 해주고 싶었는데, 이거때문에 전부 다 적자니 귀찮았다. 그래서 찾아보니까 @Mapping 에너테이션으로 처리가 가능했다. String -> Object.String @Mapping(source = "givenCoin", target = "givenCoin.code") @Mapping(source = "takenCoin", target = "takenCoin.code") Swap swapPostToSwap(SwapDto.Post requestBody); 참고 MapStruct 1.5.3.Final Reference Guide MapStruct 1.5.3.Final Reference Guide If set to true, MapStruct in w..

java/spring 2022.12.01

[Java] MimeMessageHelper를 이용하여 메일 전송

gmail smtp를 이용하여 자바로 메일을 자동 전송 로그인 이메일 인증, 비밀번호 찾기에 이용하기 위해 제작하였다. 1. Gmail 앱 비밀번호 설정 Gmail 계정 관리 - 보안 - Google에 로그인 - 앱 비밀번호 에서 앱 비밀번호를 생성해준다. 생성하고 제공받은 비밀번호를 복사해두자. 2. properties 설정 #메일 인증 spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username= Gmail 계정 spring.mail.password= 앱 비밀번호 spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.auth=tr..

java/spring 2022.11.28

[Spring Security] @AuthenticationPrincipal로 token claims 바로 받기

controller단에서 토큰 정보를 가지고 작업을 하고 싶을 때, 다음과 같이 간단하게 불러올 수 있다. 먼저 SecurityFilter에 다음과 같은 작업을 추가 /** * Authentication(인증) 객체를 SecurityContext 에 저장 */ private void setAuthenticationToContext(Map claims) { List authorities = customAuthorityUtils.createAuthorities(Role.valueOf((String) claims.get("roles"))); Authentication authentication = new UsernamePasswordAuthenticationToken(claims, null, authoriti..

java/spring 2022.11.23

[CI/CD] 로컬 spring 서버에서 ElastiCache 연결 삽질

로컬 스프링 서버에서 ElastiCache로 연결을 하려고 하자 다음 에러가 났다. Caused by: io.netty.channel.ConnectTimeoutException: connection timed out: onecoinredis.8tcrzi.ng.0001.apn2.cache.amazonaws.com/172.31.40.169:6379 뜬금없이 host와 port 사이에 로컬ip가 붙어서 에러가 난다. build.gradle에 redis-cli도 설정해줬고, ec2로는 해당 엔드포인트로 잘 접속된다. 그렇게 막 자료를 찾다가, 로컬에서는 테스트가 안된다는 얘기를 보았다. 그래서 수동으로 서버에 빌드 파일 올리고 테스트 한 결과! 통신과 저장이 잘 되는걸 확인하였다. 이유도 모르고 오후 내내 이거..

[CI/CD] 전체적 배포 구상 및 CodeDeploy 배포 중 트러블 슈팅

배포 예상도 원래는 Docker까지 사용하여 DockerHub에 이미지를 올리고 배포할 예정이었으나, redis까지 다른 서버로 사용하게 되면서 필요성이 적어지게 되어 생략했다. Github Actions 설정 빌드 결과물 S3로 전송 CodeDeploy에 배포 요청 EC2에 빌드 파일 배포 및 실행 EC2/온프레미스 배포 문제 해결 - AWS CodeDeploy (amazon.com) 처음엔 설치 중 오류 생긴줄 알고 재설치했는데 sudo service CodeDeploy-agent status 로 복붙하니 안되서 확인해보니 sudo service codedeploy-agent status 대소문자 차이였다. 동작은 잘 되고 있다. EC2에 CodeDeploy agent 설치 Amazon Linux 또..