전체 글
-
23/12/20 쿠버네티스가 뭔데 씹덕아오늘/Today I.. 2023. 12. 20. 21:36
쿠버네티스란? 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이며 서비스에 고가용성이 필요할때 사용할 수 있는 도구이다. 컨테이너가 뭐길래? 컨테이너는 VM(가상시스템)과 유사하지만 격리 속성을 완화하여 어플리케이션 간 OS를 공유함. 그래서 컨테이너가 가볍다고 여겨지는 것 VM과 마찬가지로 컨테이너 또한 자체 파일 시스템, CPU점유율, 메모리, 프로세스 공간 등이 있다. 기본 인프라와의 종속성을 끊었기 때문에, 클라우드나 OS 배포본에 모두 이식할 수 있다. 컨테이너만의 추가적인 이점 VM보다 빠른 이미지 생성과 배포 지속적 개발, 통합, 배포 개발과 운영의 관심사 분리 : 배포시점이 아닌 빌드/릴리즈 시점에 어플리케이션 컨테이너 이미지를 만들기 때문에 어플리..
-
12/19스파르타코딩클럽/스프링 개인 프로젝트 - 복습 2023. 12. 19. 22:08
1일차 회원가입 닉네임, 비밀번호, 비밀번호 확인을 request에서 전달받기 닉네임은 최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성하기 -> 정규식 + validation 적용 비밀번호는 최소 4자 이상이며, 닉네임과 같은 값이 포함된 경우 회원가입에 실패로 만들기 -> 정규식 -> if (requestDto.getPassword().contains(requestDto.getUsername())) { throw new ApiException(ErrorCode.CAN_NOT_INCLUDE_USERNAME); } 에러코드를 몇번으로 해야할지 고민되었는데 GPT가 422 로 직접 커스텀한 코드를 사용하라고 추천하여 422를 사용. 비밀번호 확인은 비밀번호와 정확하게 일치하기 ->..
-
Preview스파르타코딩클럽/스프링 개인 프로젝트 - 복습 2023. 12. 18. 20:28
마지막 개인프로젝트이자 그동안 해온 것들을 총정리하는 복습 프로젝트가 나왔다. 프로젝트 안내사항에는 매일 수행하는 과제 일정표가 주어졌지만 P답게 1주일을 강의 듣는다고 하지 않아서 이제는 5일의 전사 느낌으로 해보려 한다. 예상 진도 복습 프로젝트 월, 화, 수 리팩토링 프로젝트 수, 목, 금 완성 후 제출 이전 팀프로젝트에서 사전에 API명세를 구체적으로 설계해두면 프로젝트 진행이 훨씬 수월하다는것을 배웠기에 요구사항을 분석한 것을 간단하게 작성하고 이를 참고하여 프로젝트를 진행할 생각이다. 1일차 회원가입 더보기 닉네임, 비밀번호, 비밀번호 확인을 request에서 전달받기 닉네임은 최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성하기 -> 정규식 + validation 적..
-
23/12/18 스프링 스케줄러와 크론잡오늘/Today I.. 2023. 12. 18. 20:03
스프링스케줄러 스프링 프레임워크에서 제공하는 스케줄링 기능 장점 1. 스프링 프레임워크에서 기본으로 제공하기 때문에 사용이 쉬움 2. 어플리케이션과 같은 JVM 환경에서 실행하기 때문에 어플리케이션의 데이터에 쉽게 접근가능 단점 1. 하나의 Thread pool만 사용하기 때문에 한 스케줄이 끝나야 다음 스케줄 실행가능 2. 어플리케이션과 함께 실행되기때문에 재시작시 스케줄링도 함께 재시작된다. 그래서 장기적인 스케줄링 작업이 어려울 수 있다. 크론잡 유닉스 계열에서 사용하는 스케줄링 도구 장점 1. 시스템 수준에서 관리하기 때문에 스프링 스케줄러의 단점이었던 어플리케이션에 종속된 문제를 해결하였음. 2. 복잡한 일정 설정이 가능함. 단점 1. 유닉스 계열 시스템에만 사용가능하며 윈도우 등 다른 운영체제..
-
23/12/15 CI/CD오늘/Today I.. 2023. 12. 15. 13:48
CI (Continuous Integration, 지속적 통합) CD (Continuous Delivery, 지속적 배포) CI . 지속적 통합 코드 변경사항을 레포지토리에 지속적으로 업로드하여 통합하는 것. 이 과정에서 발생할 수 있는 오류를 빠르게 수정하는 것이 중요하다. 테스트와 빌드 과정은 반복적이기 때문에 자동화할 수 있다. 그래서 자동화된 단위 테스트, 통합 테스트를 실행하여 변경 사항이 제대로 적용되었는지 확인한다. CI의 장점 1. 자동화된 빌드와 테스트를 통해 빠르게 에러를 잡아낼 수 있다. 2. 커밋을 자주하게 됨으로써 문제의 원인을 쉽게 찾아낼 수 있다. 3. 지속적으로 에러를 찾아내 수정함으로써 코드의 안정성이 높아져, 코드품질이 높아진다. 4. 팀의 모든 개발자가 같은 코드베이스를..