-
[Spring] Security Test 코드 작성시 UserDetails 설정
오늘 겪은 문제를 정리해보려한다. Spring Security + JWT + OAuth2 인증,인가를 사용하여 정상적으로 API 작동까지 Postman으로 마친 상태이다. 문제는 Rest Docs를 적용하기 위해 Test 코드를 작성중 Spring Security 문제와 부딪히게 된 것 !! 📌 문제 발생 (403 Forbidden) 기존과 동일하게 POST 요청을 보내 보았다. @Test @DisplayName("질문 작성 API : createQuestion") void createQuestion() throws Exception { QuestionPostDto q... Read More
-
Git pull rebase 사용해 병합하기
자주 사용하는 git pull --rebase에 대해 정리해보려한다. 협업을 같이하다보면 지속적으로 업데이트를 하기 위해서 pull을 하거나 remote를 가져오기위해 fetch를 진행한다. dev/back 이라는 브랜치가 백엔드끼리 통합을 해서 사용하는 브랜치라고 가정하자. 내가 작업하는 브랜치는 feat/BE/security라고 하였을때 누군가 dev/back에 작업을 하고 Pull Reqeust하여 Merge를 했다고 가정을 해보면. 현재 dev/back 브랜치의 프로그램이 가장 최신본이다. 내가 작업하고있는 브랜치를 최신화 시키고 싶을때 dev/back에 있는 브랜치를 Pull해오면 된다. ❓ ... Read More
-
MySQL EER 다이어그램 만드는법
mysql을 로컬로 연결한 다음 연관관계 맵핑이 제대로 되어진지 확인을 하고 싶어 EER 다이어 그램을 그려주는 기능을 사용해보려한다. 워크 밴치에서 Database -> Reverse Engineer를 클릭해준다. 설정을 진행한 다음에 continue를 눌러준다. 쭉쭉 진행 EER 다이어그램으로 표시하고 싶은 스키마를 선택해줍니다. 계속 진행해주시면 됩니다. Excute를 눌러줍니다. Continue 버튼을 눌러줍니다. 그러면 최종적으로 EER Diagram 화면이 표시되는 모습을 볼 수 있습니다. @ManyToOne, @OneToMany 등으로 연관관계 맵핑을 제... Read More
-
H2 Database 다운로드 및 실행
오늘은 로컬에서 테스트할때 자주 사용하는 H2 Database를 다운받아 설정해보려한다. h2 database 홈페이지에 접속하면 위와 같은 화면이 나오는데 나는 MacOS를 쓰고있어 All Platforms를 눌러주면된다. 그럼 zip파일 하나가 다운받아진다. 여기서 버젼확인을 꼭해주자. 의존라이브러리를 추가할때 해당버젼과 일치해야한다. Gradle의 경우 runtimeOnly 'com.h2database:h2:2.1.214' 와 같이 설정해 줄 수있다. 일반적으로 버전을 제외하고 runtimeOnly 'com.h2database:h2 로 설정하면 자동으로 가장 최신의 버전이 추가되는 것 같다. ... Read More
-
[TIL] PreProject 진행, 팀장일지 (22.12.15 ~ 23.01.02)
모든 교육이 끝나고 프리 프로젝트를 시작했다. 프로젝트에 대한 기대가 너무 컸고, 얼른 내가 알고있는 기술들을 사용해보면서 구현을 해보고 싶었다. 그런 마음에서 그런지 이번 프리프로젝트에서는 무조건 팀장을 해야겠다고 생각했었고, 프론트엔드 쪽에서 진행되는 상황이나 팀적으로 어떻게 프로세스를 진행해야 원할할지에 대한 고민을 많이해보고 싶었다. 프리프로젝트가 끝나고는 메인프로젝트에서는 기능개발의 중점을 두어 팀원으로 새로 모르는 기술에 대한 탐구와 적용에 대한 고민을 주로 해볼 것 같다. 다행히 팀원들에 동의를 받아 이번 프로젝트는 내가 팀장으로 진행하게 되었다. 부담감은 물론있다. 하지만 그만큼 열심히해... Read More
-
[TIL] 네달차 회고
4달 동안의 교육과정이 끝났다. 아직 2달이라는 프로젝트 기간이 남았지만 코드스테이츠의 정식적인 교육 기간은 종료되었다. 길면 길었고 짧으면 짧았지만 4개월간 새로운 내용들을 계속해서 배워가고 찾아보고 공부하는 과정이 정말 즐거웠다. 평일,주말 가릴 것 없이 수업 진도를 따라가기 위해서 거의 점심,저녁 먹는 시간을 제외하고는 계속 공부했던 것 같다. 주말에는 조금 더쉬긴 했지만 공부하는 습관이 길들여진게 가장 중요한 것 같다. 아직 배울 것도 까마득하고.. 시간이 모자라다는 생각이 정말 많이 들었다. 프로젝트에 앞서 어떤 기술을 배웠는지 회고해보고 어떻게 이용할 수 있을지? 공부를 앞으로 어떻게 할지를... Read More
-
[TIL] Ngrok 사용하여 로컬에서 서버 실행
오늘은 어제 만들었던 TODO List 프로젝트를 로컬환경에 띄우고 외부에서 접속할 수 있도록 하려한다. AWS EC2같은 클라우딩 서비스에 배포를 하지 않아도 외부에서 접속이가능하니 프론트엔드쪽과 협업할때 매우 좋을 것 같다. Ngrok 설치 및 사용 우리가 사용중인 네트워크 방화벽과 NAT를 손보면 외부IP에서 우리의 로컬환경에 접속이 가능하다. 하지만 그렇게 될 경우 보안적으로는 매우 위험할 것이고, 이러한 상황에 Ngrok라는 툴을 사용하면 상대적으로 안전하게 개발환경을 구축할 수 있다. Ngrok은 네트워크 설정을 하지 않아도 방화벽을 넘어 외부에서 로컬 환경에 접근할 수 있게 해주는 터널링 프로그램... Read More
-
[TIL] 프로젝트 연습, 준비
드디어 정규과정이 다 끝이 났다. 4개월이란 짧은 시간에 정말 많은 것을 배웠고 모든 기술을 구현할 수 있는 능력은 없지만 작은 프로젝트부터 시작해 경험을 이제 쌓아올려보려한다. 프로젝트때 내가 중점적으로 적용하고 공부해보려는 것은 Spring MVC Spring AOP Spring JPA Spring Security(JWT, OAuth2) 계층별 테스트코드 작성 API 문서 자동화 배포 자동화 docker를 이용한 배포환경 통일화 이렇게 8개 정도를 정말 숙달할 정도로 연습해보려한다. 현재 1번~4번까지는 어느정도 연습이 되어있지만 자세한 계층구조를 파악하는 목적을 두고 있다.... Read More
-
[Spring] CORS 설정하기
오늘은 CORS에 대한 내용을 간단하게 적어보려한다. TODO List 연습 클라이언트를 이용해 로컬톰켓서버와 연결 시 CORS문제가 발생해 해결했던 코드를 올려 본다. 1). 어노테이션으로 설정하는 방법 @CrossOrigin(origins = "https://todobackend.com") @RestController public class TodoListController { ... } 2). 빈 객체를 만들어 설정하는 방법 @SpringBootApplication public class TodolistApplication { public static void main(String[... Read More
-
[TIL] Cloud 운영 전략
Proxy Server 프록시 서버는 클라이언트가 서버와 소통할 때 서버에 바로 접근하지 않고 자신을 통해 서버에 접근할 수 있도록 해주는 대리 서버라고 생각하면 간단하다. 1). Forward Proxy 클라이언트 가까이에 위치한 프록시 서버다. 클라이언트를 대신해 서버에 요청을 전달해준다. 장점 캐싱을 통해 빠른 서비스 이용이 가능하다 보안 (서버에서 프록시서버 IP를 받기때문에 클라이언트 IP를 숨길 수 있다) 2). Reverse Proxy 서버 가까이에 위치한 프록시 서버다. 서버를 대신해서 클라이언트에 응답을 제공해준다. 분산처리 (여러대의 서버로 요청을 나누어 전... Read More