본문 바로가기

전체 글141

Github Actions CI 자동 빌드 및 테스트 하기 협업프로젝트 마지막 주에는 배포를 해야하는데.... 아는게 하나도 없어서 하나씩 공부중이다... 그래도 개인적으로 기본적 토대는 CI는 GitHub Actions로 하고 CD는 Jenkins를 통해 할 계획이다. 물론 AWS로 배포할 것이다. 그래서 오늘은 GitHub Actions로 빌드및 테스트하는 방법을 말할 것이다 CI/CD가 일단 뭔데? CI는 여러 개발자가 하나의 프로젝트에 같이 개발하게된다. 이때 발생하는 불일치를 최소화해주는 개념이다. 애플리케이션 변경 사항 반영할때 자동으로 빌드 및 테스트 되어 만약 테스트가 실패하거나 잘못된 코드가 있으면 공유되는 걸 방지한다. CD는 지속적 배포로 프로젝트의 변경사항을 가상환경에 자동으로 배포하는 것이다. 간단하게 말하자면 자동빌드 및 테스트 통해 코.. 2023. 12. 31.
2022-12-31 일주일 회고록 배포 어떡하냐.. 협업프로젝트 중인데 멘토님 말씀대로라면 배포를 지금부터 하는게 좋다고 하신다. 그러니까 프론트랑 백엔드가 잘 연결되는지 테스트해야하기때문에... 근데 우리 팀에서 아는 분들이 없다는 게... 나도 모름...그냥 모름... 젠킨스가 뭐하는 기술인지도 몰랐음...오늘 공부하긴 할껀데... 할수 있을런지... 멘토링때 어버버버버,..? 멘토링하면서 멘토님이 진짜 면접처럼 이 기술은 왜 사용하는지 에 대해서 물어보신다. 근데 어버버버법 하다가 끝났다. 그냥 대충 알아봤다가 한대 맞은 기분... 그래서 쓰려는 기술 다 알아보고 블로그 작성중이다. 다음 멘토링때는 질문하신거에 다 답변할 수 있었으면..ㅎ 코테 아 코테 하기 시러... 재미도 0ㅇ로 떨어짐 그러다보니 열정 0으로 떨어짐... 지금 .. 2023. 12. 31.
[Key Word 개발기] Spring RestDocs 와 Swagger 같이 사용하기 원래 협업 프로젝트때 Spring RestDocs를 통해서 api 문서를 만들려고 했다. 그런데 귀찮은 부분이 있었다. 첫번째 adoc파일을 직접 디자인??해야된다는 점 두번째 문서가 추가되면 asciido 문서를 일일이 편집해야한다는 점 세번째 swagger처럼 직접 테스트 해볼 수 없다는 점이다. 거기다가 팀원분들이 대부분 swagger는 해보셨는데 RestDocs는 처음 사용하시는 것같았다...사실 나는 둘다 사용안해봄... 그런데 찾아보니 Spring RestDocs랑 Swagger를 같이 쓸 수 있는 방법이 있었다. Swagger UI + Spring Rest Docs 위에가 전체적인 흐름이다 1. 기존처럼 테스트코드를 통해 docs문서를 생성 2.docs문서를 openApi3스펙으로 변환 3... 2023. 12. 30.
AccessToken과 RefreshToken 조금더 자세하게 이전에 AccessToken과 RefreshToken에 대해서 블로그를 쓴적이 있지만 자세하게 쓰지 않은 것같아서.. 거기다가 부트캠프 멘토님이 토큰에 대해서 질문하시는데 머리로 어버법하다가 끝났다....ㅎㅎ 세션 기반 인증과 토큰 기반의 인증 차이점 세션 기반 인증과 토큰 기반 인증에 대해서 설명하기 이전에 HTTP에 대해 간단하게 이야기 해보자. HTTP는 stateless라는 특징이 있다. 즉 각 요청이 이전에 수행된 작업을 전혀 인식하기 못한다. 쉽게 이야기 하자면 내가 로그인하고 다른 페이지로 이동했을때 HTTP동작은 우리가 아까 로그인했는지 모른다. 그렇다면 사용자의 아이디와 비밀번호를 브라우저에 저장해놓고 매 요청마다 그 정보를 보내야할까?? 안된다. 일단 민감한 데이터가 클라이언트에 저장되.. 2023. 12. 30.
[2] Spring Batch writer에서 merge발생?? - JpaPagingItemReader,JpaItemWriter파보기 찾았다. 그대의 답을... 이전 [1] 블로그에서 이어쓰려고 했는데 다 지우기에는 나의 사고과정에 대한 기록이 다 사라져서... 따로 블로그를 쓴다. 오늘 트랜젝션 + 영속성 컨텍스트 +OSIV를 공부하다가 깨달은 내용이다. 내가 지금 설명할 부분은 JpaItemWriter, JpaPagingItemReader부분이다. 해당 라이브러리를 살짝 파볼 것이다. 아 그러기전에 결론부터 내리자면 JpaPagingItemReader 에서 entitymager가 생성되고 해당 entitymanger에서 트랜젝션이 시작되고 commit된다 이후 Processor를 거치고(reader의 entitymanger살아있음) JpaItemWriter에 왔을때 새로운 entitymanger를 생성하고 update, insert.. 2023. 12. 29.
영속성 컨텍스트와 트랜젝션 이 부분이 계속 헷갈려서 약 1주간 방황하다..역시 jpa 김영한님의 책을 보고 어느정도 정리되었다. Entity Manager 엔티티 매니저는 엔티티를 저장, 수정, 삭제, 조회하는 등 엔티티와 관련딘 모든 일을 처리한다. 즉 가상의 데이터 베이스라고 생각하면 된다. 다만 엔티티 매니저는 여러 스레드가 동시에 접그하면 동시성 문제가 발생하므로 스레드간의 절대 공유해서는 안된다. 궁금증 ) 엔티티 매니저의 경우 가상의 데이터베이스라고 했는데 그럼 실제 데이터베이스의 연결을 지속하는가?? 아니다. 필요한 시점에서 커넥션을 얻는다. 즉 보통 트랜젝션을 시작할때 커넥션을 획득한다 영속성 컨텍스트 엔티티를 영구 저장하는 환경이다. 엔티티 매니저를 생성할때 하나의 영속성 컨텍스트가 만들어진다. 엔티티 매니저가 자.. 2023. 12. 29.
728x90