개발공부 개발공부/환경설정 (Set-up) 2022. 11. 22. [Mac OS] AWS Ubuntu Session Manager 연결하기 Session Manager를 사용해본 입장으로, ssh 연결보다 훨씬 편하고 좋기 때문에 새로 만든 AWS 계정으로도 인스턴스를 만들고 Session Manager를 연결해야겠다고 생각했다. 그리고 정리해두지 않으면 다시 찾을 때 번거롭기 때문에 미래의 나 혹은 AWS Ubuntu 서버에 session manager 연결하는 방법을 찾는 사람들에게 도움이 되었으면 좋겠다. 일단 프리티어 계정으로 Ubuntu AMI EC2 인스턴스 생성하는 건 너무 많은 자료가 나와 있고 그 단계까지 진행하는 건 쉽기 때문에 생략. Ubuntu 아니라 Linux 나 다른 OS 생성하는 것도 마찬가지. EC2 인스턴스 생성을 했으면 터미널에서 ssh 접속을 해줘야 하는데 그 과정은 아래 블로그에 나온 순서를 참고했다. h.. 개발공부/개발일지 2022. 10. 24. [WebClient] 공공데이터 openAPI 호출 WebClient 사용해서 리팩토링 하기 메인 프로젝트에서 견주 인증 기능 구현을 위해 동물 등록 번호 조회 공공데이터 openAPI를 사용했었다. 프로젝트 기간 당시에는 시간이 빠듯해서 일단 작동하는 공공데이터 포털에서 제공해주는 샘플 코드를 활용했다. 샘플 코드는 Java 1.8 기준이었고, 코드 내용도 전체적으로 옛날 방식으로 길었다. 멘토님 조언도 있었고, 이 부분은 꼭 리팩토링을 해야지 생각하고 있다가 오늘 드디어 WebClient를 사용해서 훨씬 간결하게 수정했다. WebClient 사용은 처음해보기 때문에 깊게 이해하지는 못했지만 openAPI get 요청으로 호출하는 부분 위주로 자료를 찾아보면서 적용했다. 물론 성공하기까지 몇 번의 에러를 만났지만 결과적으로는 학습에 더 도움이 된 것 같다. 먼저 WebClient 사용을 위해서.. 개발공부/Error Handling 2022. 10. 2. Spring Security 'ClientRegistrationRepository' that could not be found. 해결 카카오 소셜 로그인을 구현하고 테스트를 하기 위해 application을 실행했는데 실행이 안되고 이런 오류 메시지만 떴다. 내가 나중에 다시 참고하거나 다른 사람들에게 오류 해결 공유를 위해 간단히 정리했다. 에러 메시지 출력 상황 Description: Method springSecurityFilterChain in org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration required a bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' that could not be.. 개발공부/Error Handling 2022. 8. 29. [AWS] EC2 서버 배포 오류 해결 pre-project를 진행하면서 프론트 분들과의 API 통신 테스트를 위해서라도 서버 구축과 배포가 제일 시급한 문제였는데 EC2를 생성하고 생성한 인스턴스에 스프링부트 프로젝트를 배포해봐도 웹이랑 포스트맨에서 접속이 안됐다. 분명 보안 그룹 인바운드 규칙으로 80포트도 추가해줬지만 타임아웃 오류가 나면서 접속 자체가 되지 않았다ㅠ 그래서 일단 시간이 없으니까 로컬 PC를 서버로 만들어서라도 테스트를 해보자 하고 로컬 PC 방화벽 설정에서 포트 번호 인바운드 규칙 추가해서 외부 접속도 허용해주고 준비를 거의 마쳤다. 그런데 도저히 AWS 배포가 포기가 안돼서..진짜 마지막으로 한 번만 더 해보자는 생각으로 내가 뭔가 놓친 게 없는 지 검색을 해봤다. 왜냐하면 분명 뭔가 사소한 하나를 놓친 것 같은데 그.. 개발공부/환경설정 (Set-up) 2022. 8. 22. [GitHub] GitHub repository 만들고 IntelliJ에서 spring boot 프로젝트 연동하기 그동안 깃허브에서 Repository를 먼저 만들고 난 뒤에 주소 복사하고 인텔리제이에서 spring boot 프로젝트를 미리 만들어 둔 레포 주소로 연동하려고 하면 제대로 연결이 안됐었다. 원인이 뭘까 생각해보다가 이번엔 레포 만들 때 아무것도 추가하지 않고 만들어 보았다. (README, 라이센스, .ignore 등) 그 전에 새로 레포를 만들 때는 거의 README를 추가하고 만들었는데 폴더 하나라도 있던 게 연동이 정상적으로 안됐던 원인인지 확인해보고 싶었다. 연동 순서는 아래와 같이 진행했다. 1. 깃허브에서 새로운 public 레파지토리 아무것도 추가하지 않고 생성하고 해당 레파지토리 주소 복사하기 2. 새로운 spring boot 프로젝트를 spring initializr 에서 만들고 압축을.. 개발공부/개발일지 2022. 8. 5. [블로그 만들기] Board CRUD 1차 구현 완료 블로그 만들기는 잠시 쉬고 강의를 좀 들으려고 했는데 만들어 둔 게 아깝기도 하고 조금만 수정하면 될 것 같아서 어제 살짝 수정을 해보고 간단한 테스트도 해보았다. 어제는 오류가 나서 테스트 실패했는데 오늘은 오류도 해결하고 Board 쪽은 얼추 큰 틀 구현이 된 것 같다. 구현한 Board 관련 부분 요약 - Board Entity 테이블 매핑해서 MySQL DB에 연결함 - Board Service 구현 - Board Controller 구현 - Board mapper 구현 (map struct 사용) - Board Dto들 구현 (PostDto, UpdateDto, ResponseDto 등) - Board Service 클래스에 Transactional 적용 사실 지지난주에 이미 만들어 본 블로그 .. 개발공부/Error Handling 2022. 7. 21. Windows 환경에서 mkcert 설치 오류 해결 (localhost https 인증서) 오류 발생 상황 WSL로 아래의 명령어들을 순서대로 입력해서 mkcert를 설치하려고 했으나 오류 발생. $ sudo apt install libnss3-tools $ wget -O mkcert $ chmod +x mkcert $ sudo cp mkcert /usr/local/bin/ libnss3-tools 설치는 잘됐지만 그 이후 명령어들은 동작하지 않았다. WSL을 사용해서 할 때 제대로 명령어 실행이 안되는 경우가 많았어서 한 번 다른 터미널을 이용해서 설치를 시도해 보기로 했다. 해결 방법 공식에도 Windows는 Chocolatey로 설치하라고 나와있어서 PowerShell 을 관리자 모드로 열고 Chcolatey를 실행해서 설치를 진행했다. (Chocolatey는 이미 설치 되어 있었음.) .. 개발공부/개발일지 2022. 7. 21. [블로그 만들기] 요구사항 정리 블로그 만들기 프로젝트를 위해 DB에 테이블을 생성하고 인텔리제이에서 Controller나 Service 클래스 등을 작성하기 위해서 기능 정리랑 페이지별로 요구사항을 좀 더 정확하고 세세하게 정리하는 작업이 필요했다. 필요한 요구사항을 기능과 페이지를 기준으로 정리해 보았다. 사실 진작 올렸어야 하는데 블로깅을 깜빡했다. 이제 정리한 내용을 토대로 DB 테이블을 먼저 만들고 주요 페이지들을 먼저 구현할 예정이다. +구현하다보니 댓글 기능은 당장 넣기 어려울 것 같다ㅠㅠ 여기 적은 항목들을 전부 다 구현하는 건 기간 안에 어려울 것 같고 부캠 프로젝트가 끝나면 이어서 리팩토링 하면서 기능 추가를 해볼 예정이다. 필요한 기능 회원가입 로그인 게시글 목록 조회 글 작성/수정/삭제 게시글 상세 조회 댓글 작성.. 개발공부/개발일지 2022. 7. 18. [블로그 만들기] Spring boot 프로젝트에 MySQL DB 연동하기 프로젝트 생성과 빌드를 해준 뒤에 다음으로 한 작업은 데이터베이스 연동이다. 프로젝트에 사용할 DB는 MySQL을 사용하기로 정했는데 이유는 연관 자료가 많고, 게시물 등록의 형태도 그렇고 정해진 틀 안에서 사용할거라 비정형보다는 정형 데이터를 주로 저장할 것이기 때문이다. MySQL은 이미 설치되어 있어서 설치 단계는 생략하고, MySQL WorkBench 8.0에 들어가서 바로 'root' 라는 이름의 connection을 생성해줬다. 전에 MySQL을 설치하면서 root 계정을 만들었는데 그 때 비밀번호를 적어뒀던 걸 활용했다. 근데 이게 스프링 부트 프로젝트에 연결할 때 yml 폴더 안에 계정 정보를 적어야해서 그냥 간단하고 짧은 비밀번호로 변경해야겠다고 생각했다. git에 올라갈 때 유출되도 상.. 이전 1 2 다음