인덱스 이론 개념 DBMS에서의 인덱스는 저장 성능을 희생하고 검색 성능을 높이는 기능입니다. 1000페이지가 넘는 토비의 스프링 같은 책과 비유하자면 다음과 같습니다 책의 맨 처음이나 끝에 존재하는 색인 = DBMS의 인덱스 책의 내용 = DBMS의 데이터 파일 책의 색인을 통해 알 수 있는 페이지 번호 = DBMS의 데이터 파일에 저장된 레코드의 주소 책의 색인은 사전 순으로 정렬 = DBMS의 인덱스도 일정 기준으로 정렬 가능 종종 책의 목차를 인덱스로 비유하는데 정확히는 아닙니다. 왜냐하면 책의 목차는 문자열 등 특정 기준으로 정렬되어 있지 않기 때문입니다. 색인의 특징 색인의 특징을 자세히 알아보겠습니다. 책에 있는 모든 용어가 아닌 자주 찾아보는 핵심 용어만 간추려서 정리했습니다. 효율적인 검..
서론 기존 사내서 NCP(Naver Cloud Platform)에서 제공하는 git 저장소를 사용하고 있습니다. 그러나 이슈관리, PR 등 효율적인 소스관리나 자동배포를 위한 기능들이 빈약하다는 생각이 들었습니다. 팀장님의 승인을 받고 git 저장소 조사를 진행하였습니다. github enterprise와 gitlab 유료버전은 가격이 너무 비싸서 제외했습니다. 다른 팀에서 무료인 gitlab ce 버전을 사용하고 있다는 것을 알게되었습니다. 우선 IDC 서버는 회사 정책상 사용하는데 제한이 있었습니다. github enterprise는 사용자 당 가격을 책정하는것에 비해 gitlab ce 버전은 클라우드 서버 비용만 감수하면 되서 도입을 진행하게 되었습니다. (2021.01.09 기준 현재 진행중) 서..
💡 OSI 7계층에 대한 전반적인 개념을 이번 글 포스팅 하나로 학습하고자 내용이 다소 많습니다. 스크롤을 내려 오른쪽의 목차를 이용하여 원하는 부분만 보실 수 있습니다. 개념 OSI 7계층이란 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. (나무위키) 쉽게 말하면, 네트워크에서 통신이 일어나는 과정을 7계층으로 나눈 모델입니다. OSI 7계층이 탄생한 배경 OSI 7계층이 탄생하기 이전에는 회사마다 독자적인 장비 구조가 대다수 였습니다. 결국 같은 회사의 컴퓨터끼리만 네트워크를 연결할 수 있었고 서로 다른 기종간의 네트워크 필요성이 대두되었습니다. 위와 같은 호환성 이슈를 방지하고 모든 시스템들 간의 상호 연결에 문제가 없도록 ISO..
POST 컨트롤러 호출시 @RequestBody로 요청받는 Request의 dto는 다음과 같습니다. public class Request { private String name; private ColorType colrType; private String redApple; private String greenApple; private String redOrange; private String greenOrange; //getter, setter ... public enum ColorType { RED, GREEN } colorType의 값이 RED면 redApple과 redOrange의 값은 필수, GREEN면 greenApple과 greenOrange의 값에 대한 필수값 체크를 하고 싶었습니다. 우선..
구글링해서 조사해보면 설정방법은 많이 나오니 생략.. 내가 2~3 시간째 삽질한걸 기록 processResources.dependsOn('copySecret') task copySecret(type: Copy) { from './submodule/application-aws-s3.yml' //submoduole에 추가한 노출되면 안되는 파일 into './src/main/resources' //build시 from에 지정한 경로의 파일을 복사할 위치 } 계속 구글링 하다보면 여기까지 설정한 자신을 볼 수 있다. 문제는 gradle에서 아무리 build하고 jar파일을 까봐도 yml이 없었음;; gradle을 리로드 하면 task {작업명} 으로 입력한 copySecret가 other 쪽에 추가된걸 확인할..
gradle init settings.gradle 설정 /* * This file was generated by the Gradle 'init' task. * * The settings file is used to specify which projects to include in your build. * * Detailed information about configuring a multi-project build in Gradle can be found * in the user manual at https://docs.gradle.org/6.8.3/userguide/multi_project_builds.html */ rootProject.name = 'security' ["comp", "web", "s..
public static Apple 잠금해제상태_스케줄_생성() { return Apple.builder() .id(1) .name("사과") .build(); } 테스트코드에서 Fixture로 Apple 엔티티를 생성할려구 했다. @AllArgsConstructor @NoArgsConstructor( access = AccessLevel.PROTECTED ) @Builder @Entity public class Apple { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; //... 엔티티 설정은 다음과 같다. JpaRepository를 상속받아 save()메소드로 생성한 엔티티를 저장할려구 했는데 detached ent..
사전준비 해당 서버에 톰캣 세팅 젠킨스 개인키,공개키 생성 후 등록 젠킨스 기본구조는 이대로 ㄱㄱ https://tecoble.techcourse.co.kr/post/2021-10-10-jenkins/ CI/CD가 뭔가요? 실전편 지난번 CI/CD가 뭔가요? - 이론편에서 CI/CD에 대해서 알아보았다. 이번 글에서는 jenkins를 이용해 하나의 CI/CD… tecoble.techcourse.co.kr 나만의 맞춤 - 빌드 성공 후 굳이 실행시킬 필요 없어서 script 빈칸 - 만약 도커를 쓴다면 도커허브에 war파일을 push 반드시 Test Configuration을 눌러 연결성공여부도 확인하자 - gcp를 쓰기 때문에 Hostname에 내부 IP를 적음 - remote directory : 젠킨..
1. 권한 에러 => 프로젝트 폴더의 소유자는 Jenkins가 인스턴스에 원격으로 SSH하는 데 사용하는 소유자와 동일해야 합니다. sudo chown -R 계정명:계정명 (폴더명) sudo chown -R apple64222:apple64222 demo https://codechacha.com/ko/linux-chown/ Linux - chown 명령어로 소유자 변경하는 방법 chown 명령어는 파일의 Owner 또는 Group을 변경하는 명령어입니다. 재귀적으로(Resursive) 하위 폴더 소유자 모두 변경하려면 chown 명령어에 -R 옵션을 주면 됩니다. 예제를 통해 사용방법을 자세히 알 codechacha.com https://www.codenong.com/53008293/ jenkins:发布..
젠킨스 서버 접속 후 원하는 파일 업로드 아래 경로로 가면 Item종류가 있다. 원하는 Item이름에 들어가서 경로를 확인해준다. /var/lib/jenkins/workspace/{Item이름}/{업로드한 파일을 놓을 경로..} 필자는 aws-s3.yml 정보를 깃허브에 푸시를 하지않고 서버에 직접 업로드 mv aws-s3.yml /var/lib/jenkins/workspace/realworld/module-api/src/main/resources 젠킨스 대시보드 -> 작업공간확인결과 잘 올라감 https://more-learn.tistory.com/26?category=796361 Github + Jenkins + Docker로 빌드 / 배포 자동화 저번에 Github에 Commit을 하면 Jenkin..