본문 바로가기
728x90

Backend13

Spring Security 단위 테스트 스프링 시큐리티를 통해서 유저 인증을 하고 시큐리티 컨텍스트에서 로그인 된 유저의 정보를 받아와서 처리하는 로직이 많이 있었다.그동안은 직접 JWT를 넣어서 직접 테스트를 진행했었다.매번 @SpringBootTest를 사용해서 테스트를 하자고 하니 테스트 속도가 너무 오래걸렸다. 그래서 오늘은 Spring Security를 활용해서 단위 테스트를 하면서 알게 된 내용들에 대해 정리하고자 한다. Spring에서 단위 테스트를 할 때, 테스트 위에 붙혀줘야하는 어노테이션이 있다.배경 지식Junit 버전이 5 미만인 경우@RunWith(SpringRunner.class) 또는 @RunWith(MockitoJUnitRunner.class) 등을 사용해야 한다.Junit 버전이 5 이상인 경우@ExtendWith.. 2024. 8. 7.
[문제 해결] github Action + AWS CodeDeploy 배포 환경변수 삽질일기. 요약시간이 급하신 분은 가장 아래로 내리셔서 문제 해결만 보시면 됩니다. 이 글은 저의 삽질일기를 적어뒀습니다.문제 상황어느날 갑자기 프론트 팀원에게 다음과 같은 연락이 왔다.그럴리가 없는데,, 간단한 Dto 변경을 진행하고 머지를 했었다. 그리고 그 변경사항이 스웨거에 제대로 반영된 걸 확인했기 때문에 이런 문제가 생길리가 없다고 생각했다.현재 내 개발환경은 aws에 개발 서버를 올려두고 개발을 진행하고 있다.CI/CD 설정을 github Action을 사용해서 설정해뒀고, AWS CodeDeploy를 사용해서 개발을 진행한다.main 브랜치에 push 되는 경우에 action이 감지해서 배포를 진행한다.CICD.yml 파일# 1 워크플로의 이름 지정name: CI and Deploy to Amazon.. 2024. 8. 7.
서블릿이란 무엇인가 [서블릿 실행 흐름 편] 예제 실행 상황 및 파일서블릿 컨테이너는 메인 서버에 위치하며, 웹 애플리케이션은 서블릿 컨테이너에 배포됩니다.이 예시 그림에서는 ServletFlow라는 웹 어플리케이션이 존재하고 WEB-INF라는 폴더에 URL 매핑 정보가 서블릿 이름과 연결 되어있습니다.브라우저를 사용해 클라이언트 데이터가 포함된 HTTP 요청을 서버에 전송하고, 서버로부터 HTTP 응답을 받습니다.web.xml 파일과 "HelloServlet.java"의 .class 파일을 저장하는 classes 폴더가 있습니다. index.html Enter your name and click on submit: HelloServlet.javapackage com; .. 2024. 5. 8.
Servlet 이란 무엇일까 [개념편] 서블릿이란서블릿은 CGI와 같이 자바를 사용하여 웹 서버에서 동적으로 컨텐츠를 생성하고, 클라이언트에게 응답을 전송하는 기술입니다.서블릿을 이해하기 위해서 동적컨텐츠와 CGI가 무엇인지 먼저 이해가 필요합니다.정적/동적 컨텐츠정적인 콘텐츠는 미리 준비된 문서 즉 변화하지 않는 리소스를 제공하는 것을 의미합니다.즉 항상 똑같은 사진이나 책처럼 변화하지 않는 문서 등 변화하지 않는 미리 준비된 콘텐츠 입니다.웹 초기에는 정적인 컨텐츠만 제공했지만 데이터의 변화에 따라 프로그램이 생성한 컨텐츠를 동적으로 보여주고 싶은 니즈가 발생했습니다.즉 동적인 컨텐츠는 미리 준비된 콘텐츠가 아니라 프로그램을 실행해서 제작해서 주는 콘텐츠입니다. 서블릿은 왜 생겨났는가?먼저 서블릿의 역사를 알기 위해 서블릿이 왜 생겨나야 .. 2024. 5. 7.
728x90