분류 전체보기

📢 본 내용은 원티드 프리온보딩 백엔드 챌린지 1월를 정리한 내용입니다. 1. 매니지드 & 서버리스 비교  - 매니지드 : 관리는 AWS가 해주지만 리소스는 계속 실행 중- 서버리스 : 필요할 때만 실행되고, 실행한 만큼만 과금 리소스의 실행 상태(항시 실행 vs 필요시만 실행)용량 관리 방식 (직접 선택 vs 자동 관리)과금 방식 (시간 단위 vs 사용량 단위) 서버리스 단점콜드스타트(ColdStart) : 추운 상태에서 시작함cold : pc가 꺼진 상태hot : 사용 될 때 잠깐 켜져서 사용될 때까지 그래도 활성화된 상태warm : 아 이제 사용 안 하나 보다~ 하는 상태  2. Aurora Serverless - AWS에서 자체 개발한 RDS- PostgreSQL, MySQL 호환 가능- 자동 ..
📢 본 내용은 원티드 프리온보딩 백엔드 챌린지 1월를 정리한 내용입니다. 1. IDC (Internet Data Center)- 네트워크, 전력, 냉방, 보안- 통신사, 대형 SI, 네이버, 카카오 등이 운영 2. VPC(Virtual Private Cloud) 나만의 사설 클라우드 공간이라고 생각해도 된다 - aws 내 격리된 가상 네트워크- 사용자 정의 IP 주소 범위- 보통 리전에 들어가보면 기본 vpc가 하나씩 있다. (사용하지 않는 것을 추천) 3. AWS Region / 가용영역3.1. AWS Region - AWS의 물리적 데이터센터 군집- 전 세계 주요 지역에 분산된 인프라- Region에 따라 지연 시간(Latency) , 법적 규제(Data Residency) , 제공 서비스 범위, ..
📢 본 내용은 원티드 프리온보딩 백엔드 챌린지 1월를 정리한 내용입니다. 1. Root vs IAM1.1. Root- 최초 생성시 입력한 이메일 주소 Root 계정- 모든 AWS 서비스와 리소스에 대한 완전한 접근 권한 보유- 권한을 제한할 수 없음- AWS 계정당 단 하나만 존재 1.2. IAM (Identity and Access Management) - 관리자가 정의한 특정 권한만 가짐- 필요에 따라 권한 추가/삭제 가능- 팀원별로 독립적인 계정 발급 가능- 그룹과 역할을 통한 체계적인 궈한 관리 가능 2. S3 / Cloudfront2.1. S3 (Simple Storage Service)- 무제한 확장 가능한 객체 스토리지- 99.999999999% 데이터 내구성(SLA) - 정적 웹 호스팅 ..
· 💻개발
프로젝트에서 조회수 기능을 구현해야 했다.처음에는 단순하게 조회수 컬럼을 게시판 테이블에 추가하여, 게시글을 조회할 때마다 조회수를 1씩 증가시키는 방식으로 설계했다. 예를 들면 다음과 같은 구조다.  @Entitypublic class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String content; private int views; public void increaseViews() { this.views += 1; }}그래서 GET 요청이 올 때마다 조회수를 단순히 증가시키는 접근으로..
계층 구조에 대한 DB를 찾다가 알게 된 구조흔히 사용하는 인접리스트가 있는데 DB에서 자식만 가져오는 것이 아닌 자손까지 가져온다고 했을 때, 계층이 너무 깊으면 self join을 많이해서 쿼리 구조가 복잡하다는 단점이 있다. 그래서 다른 방법을 찾다가 여기까지 왔다.  자기 자신을 포함해서 자식 노드를 모두 저장하는 DB 형태 예를 들어 계층구조가 이런 형태면 DB형태가 ancestor, descendant, length가 저장이 된다. length는 우리가 dfs를 풀 때 depth를 사용하는데 이와 같다고 생각하면 될 것 같다.  그래서 만약 내가 조상일 때 ancestor=1일때라는 조건을 걸어서 select를 하면 되니까 자손을 모두 가져오기도 편하고자식을 가져올 때도 depth=1이라는 조..
언제 발생?1:N, N:1, 양방향 관계 내 경우는?나의 경우 user, userinfo를 1:1 양방향으로 해놓았는데 여기서 문제 발생 문제 해결 방법1. @JsonManagedReference와 @JsonBackReference를 사용@JsonManagedReference를 부모 클래스, 연관 관계 주인의 반대편@JsonBackReference를 자식 클래스, 연관 관계의 주인(외래 키가 있는 곳)에 붙인다.  2. DTO를 객체를 만들어서 반환한다. -> 선택!-> 이걸로 시도해서 해결-> 사실 DTO를 만들어야 해야하는데, 비즈니스 로직 같은 복잡한 코드는 없고 순수하게 전달해야할 때 사용한다~라고만 알고 있었다. 개념만 알고 있었는데 실제 사용해야하는 이유를 알게 되었다.
⏰문제https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다. - 두 사람 사이에 더 많은 선물을 준 사람이 선물을 받음 - 선물 기록이 없거나 주고받은 수가 같다면, 선물 지수가 더 큰 사람이 선물 지수가 더 작은 사람에게 받음      - 선물..
🐛문제Test에 아래와 같은 코드를 작성했다. @DisplayName("updateArticle : 블로그 글 수정에 성공한다.")@Testpublic void updateArticle() throws Exception {} 원래라면 실행탭에 `updateArticle : 블로그 글 수정에 성공한다.`라는 글이 떠야 하는데 아래 사진과 같이 아무것도 뜨지 않았다!   🛠️ 해결 방법1. `File` -> `Settings` -> `Build, Execution, Deployment` -> `Build Tools` -> `Gradle`2. `Gradle Projects` -> `Run tests using`에서 기존에 `Gradle` -> `IntelliJ IDEA`로 바꾼다.   수정했더니 아래와 같..
🐛문제`@AllArgsConstructor`, `@Getter` 등 롬복을 인식 못하는 오류가 생겼다.  🛠️ 해결 방법1. Lombok 의존성 확인프로젝트에서 gradle을 사용해서 build.gradle을 확인했다. dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'}  2. IDE Lombok 플러그인 확인1.  `File` -> `Settings` -> `Plugins`Lombok 플러그인이 설치되어 있는지 확인2.  `File` -> `Settings` -> `Build, Execution, Deployment` -> `Compiler` -> `Annot..
⏰문제https://www.acmicpc.net/problem/23796 💡풀이1. 정답용으로 빈칸인 answer_map 생성, 방향에 따라 switch로 분리- 배열은 long[][]을 사용하기2. for문을 돌면서 한 줄씩 탐색해서 0이 아닌 데이터를 Queue에 집어넣는다. 3. Queue에 있는 내용을 tmp = q.poll()하고 다음 숫자를 next = q.peek()으로 뽑아내면서,숫자가 똑같으면 answer_map에 2배를 해서 집어넣고, next를 Queue에서 뽑아야 하므로 poll로 뽑아낸다. 다르면 tmp만 집어넣는다. 4. 마지막에는 peek()을 할 수 없어서 null처리를 해주었다.  ⌨️ 코드import java.io.BufferedReader;import java.io.I..
i_zzy
'분류 전체보기' 카테고리의 글 목록