1.S3 와 CloudFront Github aciotn CI/CD 1 ) Github Actions를 위한 IAM 생성2) 프론트엔드 : github action에서 CI/CD위해 s3와 cloudfront 생성(1) s3 생성(2) cloudfront 생성 2. Cloudfront에 HTTPS 적용 1) acm에서 ssl인증서 발급 2) cloudfront에 인증서 적용 3) route53에서 호스팅 참고https://jindevelopetravel0919.tistory.com/189 [AWS] 가비아 도메인 설정 및 EC2 에 해당 도메인 적용EC2 서버를 배포하면 기본적으로 ip주소로 입력하여 요청하거나 호출해야 합니다. 하지만 보통 일반적인 사이트들을 보면 ip주소로 접근하지 않고 도..
1. 가비아에서 도메인을 산다. 2. 가비아에 route 53 연결 및 route 53에 ec2 도메인 연결3. nginx 설정4. ec2 ssh에서 cd /etc/nginx/sites-enabled/default 으로 이동 리버스 프록시 서버 등록 및 SSL 인증서 설정\\4. Certbot cron을 이용한 SSL 인증서 자동 갱신 참고 자료https://velog.io/@kylekim2123/Infra-%EB%A6%AC%EB%B2%84%EC%8A%A4-%ED%94%84%EB%A1%9D%EC%8B%9C%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0-with-Nginx [Infra] 리버스 프록시를 이용한..
1. 코드의 간결함이전 exceptionhandler 각각의 exception마다 지정하여 코드를 길게 작성하게됨 @Slf4j@RestControllerAdvicepublic class ExControllerAdvice extends ResponseEntityExceptionHandler { @ResponseStatus(BAD_REQUEST) //400 @ExceptionHandler(IllegalArgumentException.class) public ExceptionResponse illegalExHandler(IllegalArgumentException e) { return new ExceptionResponse(BAD_REQUEST.value(), e.getMessag..
1 ~ 100인덱스데이터를 빠르게 접근하기 위해 쌍으로 구성된 데이터인덱스가 없으면 테이블의 특정값을 찾기위해 모든 데이터를 다 뒤지는 Table Scan 발생Index 사용 이유?Index는 데이터베이스에서 table의 검색 성능을 높여주는 대표적인 방법중 하나입니다. 일반적인 RDBMS(관계형데이터베이스)에서는 B+Tree구조로 된 index를 사용하여 검색속도를 향상시킵니다.index는 책마다 마지막 페이지에 있는 색인(index)과 같은 역할을 하는 자료구조입니다. 책에서 어떤 용어나 단어를 찾기위해 첫 페이지부터 끝 페이지 까지 전체를 훑지 않아도(Full Table Scan) index를 찾아보면 몇 페이지에 적혀 있는지 바로 찾을 수 있는 것(Index Scan)과 비슷합니다.SELECT ..
관계형 데이터베이스(RDB)의 특징사전에 엄격하게 정의된 DB schema를 요구하는 table 기반 데이터 구조를 갖습니다.NoSQL(비관계형 데이터베이스)의 특징table 형식이 아닌 비정형 데이터를 저장할 수 있도록 지원합니다.RDB는 엄격한 schema로 인해 데이터 중복이 없기 때문에 데이터 update가 많을 때 유리합니다.NoSQL의 경우 데이터 중복으로 인해 데이터 update 시 모든 컬렉션에서 수정이 필요하기 때문에 update가 적고 조회가 많을 때 유리합니다.Q. Nosql은 언제 사용하면 좋을까요?NoSQL은 정확한 데이터 구조가 정해지지 않은 경우, 데이터 update가 자주 이루어지지 않고 조회가 많은 경우, 또 scale out이 가능하므로 데이터 양이 매우 많은 경우에 사용..
함수적 종속어떤 테이블 RX, Y는 각각 R의 속성 집합의 부분 집합 속성 X 각 값에 대해 속성 Y의 값은 오직 하나만 대응될 때, Y 는 X에 대해 함수적 종속 관계 에 있다 함.결정자, 종속자X → Y의 관계를 갖는 속성 X, Y에서 X를 결정자, Y를 종속자 라고 한다.아래의 경우 “학번”이 결정자 , “이름”이 종속자학번 →이름성적은 그 학생의 학번의 과목번호에 종속.학년은 학번에 종속함수적 종속 다이어그램한 테이블에 존재하는 ‘속성’간의 함수적 종속 관계를 그림으로 표현한 것완전 함수 종속, 부분 함수 종속위 테이블 속성 중‘성적’(학번, 과목번호) 은 완전 함수적 종속‘학년’(학번, 과목번호) 에 대해 완전 함수적 종속은 아니고 부분 함수적 종속이라 고함주문 번호 , 부품 번호 → 거래처 ..
이상테이블에서 일부 속성중의 종속으로 인하여 “중복”이 발생하고 이러한 중복으로 인해 테이블 조작 시 문제가 발생하는 현상→ Update ,Insert ,Delete 할때,이상 종류 3가지삽입 이상테이블에 데이터를 삽입할 떄, 의도와는 다른 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상.데이터 중복 저장삭제 이상삭제 이상은 테이블에서 한 튜플을 삭제할 때, 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상문제 : 등록 삭제만 하려고 했는데 그 존제 자체가 없어짐갱신 이상갱신 이상은 테이블에서 튜플에 있는 속성 값을 갱신할 떄, 일부 튜플의 정보만 갱신되어 정보의 불일치성이 생기는 증상EX) 연습 문제이상 증상 발생이상테이블에서 일부 속성중의 종속으로 인하여 “중복”이 ..
Docker-compose : 결합여러 컨테이너로 구성된 애플리케이션을 정의하고 실행하기 위한 도구.주로 개발 환경에서 여러 서비스를 편리하게 관리하고 실행하는 데 사용version: '3'services: backend: image: my-spring-boot-app:latest ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=dev volumes: - ./backend:/appDocker Compose 파일을 사용하면 docker-compose up 명령을 통해 사용 Docker-hub : 잘 만들어진 컨테이너 개인이 실행Docker 컨테이너 이미지를 저장하고 관리하는 공식적인 Docker 이..
Github ActionGitHub Actions은 GitHub에서 호스팅되는 지속적인 통합 및 지속적인 배포(CI/CD) 서비스name: Spring Boot & Gradle CI/CD # master branch에 push 또는 pull request가 발생할 경우 동작# branch 단위 외에도, tag나 cron 식 등을 사용할 수 있음on: push: branches: [ develop ] pull_request: branches: [ develop ]jobs: build: # 실행 환경 지정 runs-on: ubuntu-latest # Task의 sequence를 명시한다. steps: - uses: actions/checkout@v2 -..
생성자 및 @Builder 정의 및 특징생성자 정의 : 생성자는 클래스의 객체를 생성할 때 호출되는 특별한 메서드입니다특징 : 객체 초기화: 객체가 생성될 때 필드를 초기화할 수 있습니다. @Builder 정의 : @Builder는 Lombok 라이브러리에서 제공하는 애노테이션으로, 빌더 패턴을 쉽게 구현할 수 있도록 도와줍니다.특징 :선택적 매개변수: 필요한 필드만 설정할 수 있어 유연성이 높습니다.가독성: 빌더 패턴을 통해 가독성이 높고, 직관적인 객체 생성 방식을 제공합니다. //생성자Person p = new Person("Kim", "Female", 25);//빌더 패턴Person p = Person.builder() .name("Kim") ..
https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=cpp 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코드import java.util.HashSet;class Solution { static boolean[] visited; static HashSet res = new HashSet(); public int solution(String numbers) { String[] arr = numbers.split(""); visited = ..
https://github.com/Study-Blog-Project/Backend GitHub - Study-Blog-Project/Backend Contribute to Study-Blog-Project/Backend development by creating an account on GitHub. github.com