일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- mapping
- serverless
- CodeCommit
- codebuild
- aws
- MSA
- 자격증
- kakao
- Docker
- s3
- jpa
- ec2
- 오블완
- rds
- codedeploy
- DynamoDB
- goorm
- QueryDSL
- spring
- orm
- sqs
- backenddeveloper
- backend
- 백엔드
- 개발자
- Spring Boot
- CICD
- 티스토리챌린지
- 스터디
- Redis
- Today
- Total
목록티스토리챌린지 (12)
gony-dev 님의 블로그
AWS CodeDeployCodeDeploy는 어플리케이션 배포를 자동화해주는 배포 서비스이다.온-프레미스 서버, 람다 함수, ECS 서비스, EC2 인스턴스에 새로운 어플리케이션 버전을 배포한다.배포가 실패하거나, 알람이 트리거되면 자동으로 롤백을 시작할 수가 있다!appspec.yml인 파일을 사용하여 배포 방식을 정의할 수가 있다.CodeDeploy - EC2/On-preises Platform우리는 CodeDeploy를 사용하여 두 종류의 배포를 할 수 있다.하나는 in-place 배포, 다른 하나는 블루/그린 배포이다.CodeDeploy를 할 때는 CodeDeploy 에이전트를 타깃 인스턴스에 배포해야만 한다. 그 에이전트가 인스턴스 업데이트를 수행하기 때문이다.우리는 배포 속도도 정의할 수 있..
Querydsl에 대한 초기 설정을 하였지만기초도 모르면 무용지물이다. 오늘은 querydsl을 사용하여 기본 문법에 대해 작성을 해보겠다.JPQL vs. Querydsl작성 전에 우리가 querydsl을 사용하는 이유에 대해 알아보자.JPQL을 사용해도 될텐데 왜 굳이 querydsl을 사용하는 것일까?사실 이 두 가지 프레임워크에는 차이점이 있다.JPQL과 달리 querydsl은 select절에서 문법이 틀려도 틀릴수가 없다.왜? 컴파일링을 통해 오류를 다 잡아내기 때문이다!! 그 덕에 우리는 편하게 코드를 작성하고 재빨리 오류를 찾아 수정할 수 있다."여러 Repository에서 JPAQueryFactory를 필드로 선언할 텐데 이에 대한 동시성 문제는 괜찮을까?" 라고 생각할 수 있다.하지만 괜찮..
지금까지 섹션 24까지 진행하면서 우리는 AWS 리소스를 생성하고, AWS 프로그래밍 방식을 배우고, Beanstalk로 AWS에 코드를 배포하기도 하였다.하지만 이 모든 작업을 수동으로 하였는데, 이런 경우에 실수가 발생할 수 있다.우리는 이제 자동으로 AWS에 배포되는 방법을 배우고자 한다.CICDCICD에서 우리는 다음 사항들을 배울 것이다.AWS CodeCommit | 코드를 저장AWS CodePipeline | 코드에서 Elastic Beanstalk까지 파이프라인을 자동화AWS CodeBuild | 코드를 빌드하고 테스트AWS CodeDeploy | EC2 인스턴스에 코드를 배포AWS CodeStar | 하나의 장소에서 소프트웨어 개발 활동들을 관리AWS CodeArtifact | 소프트웨어 ..
Apache Kafka의 구성 요소와 동작 방식에 대해 알아보았으니간단한 실습을 통해 이를 더 이해해보도록 하겠다.📌 프로젝트 환경Spring boot version | 'org.springframework.boot' version '3.3.5'JDK | 17가독성 있는 실습을 진행하기 위해 Consumer과 Producer에 대한 프로젝트를 따로 생성해 주었다!의존성두 어플리케이션 모두 같은 의존성을 추가하였다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeO..
🔥 Querydsl란?스프링 부트 + 스프링 데이터 JPA만으로 해결할 수 없는 복잡한 쿼리나 동적 쿼리들을 다루고 발생하는 문제들을 해결하기 위해 Querydsl을 사용한다!쿼리를 자바 코드로 작성하여 문법 오류를 컴파일 시점에 잡아준다!특징동적 쿼리 문제 해결쉬운 SQL 스타일 문법으로 쉽게 학습도 가능하다.🔥 Querydsl 초기 세팅이제 Querydsl를 사용하기 위해 필요한 기본 세팅들을 살펴보자!Querydsl은 Spring boot 프로젝트 생성 시 지원되는 라이브러리가 아니기 때문에 build.gradle에 직접 추가해 주어야 한다.//build.gradledependencies{ // Querydsl 추가 (Spring boot 3.x 이상) implementation 'com...
카프카는 대규모 데이터 스트리밍을 처리하기 위해 설계된 오픈 소스 분산 메시징 플랫폼이다.주로 실시간 데이터 처리와 이벤트 중심 아키텍쳐를 지원하는 데 사용된다.Pub-Sub 모델의 메시지 큐 형태로 동작하며 분산환경에 특화되어 있다! 📌 카프카를 사용하는 이유?기존의 시스템은 데이터 시스템의 복잡도가 높아지면서 다음과 같이 얽혀있는 형태가 되어있었다.이러한 시스템은 다음과 같은 문제점들을 발행한다.시스템 복잡도 증가데이터 파이프라인 관리의 어려움그리고 카프카를 적용한 상태의 데이터 처리 시스템은 다음과 같이 변하게 된다. 📌 특징분산 시스템 | kafka는 여러 노드에 데이터를 분산 저장하고 처리할 수 있어서 높은 확장성과 가용성을 가진다.실시간 데이터 처리 | 초당 수백만 건의 메시지까지 처리할 ..
API Gateway클라이언트가 람다 함수를 직접 호출하기 위해서는 IAM 권한이 있어야 한다.ALB를 사용하여 클라이언트와 람다 함수 사이에 권한을 둘 수가 있는데, 그러면 람다 함수가 HTTP 엔드포인트로 노출된다.API Gateway는 AWS에서 제공하는 서버리스 서비스로 클라이언트가 액세스 할 수 있게 공개적인 REST API를 만들 수 있다!클라이언트가 API 게이트웨이에 통신하면 람다 함수로 요청을 프록시한다.람다와 API 게이트웨이의 조합은 관리할 인프라가 없는 완전한 서버리스 어플리케이션이 된다.웹소켓 프로토콜이 지원이 되어 API 게이트웨이를 통해 실시간 스트리밍이 가능하다.API 게이트웨이는 버저닝을 처리하므로 버전1에서 버전2, 3으로 변경도 할 수 있다.다양한 환경을 처리할 수도 있..
JPA 강의를 토대로 페이징 기술을 도입하여 테스트하던 도중, 이런 오류가 발생하였다.2024-11-13 12:41:38 [http-nio-8080-exec-3] WARN o.s.d.w.c.SpringDataJacksonConfiguration$PageModule$WarningLoggingModifier - Serializing PageImpl instances as-is is not supported, meaning that there is no guarantee about the stability of the resulting JSON structure!For a stable JSON structure, please use Spring Data's PagedModel (globally via @En..
Proxy프록시(Proxy)는 '대리'라는 의미로 인터넷 관점에서는 내부 네트워크에서 인터넷 접속을 할 때, 빠른 액세스나 안전한 통신 등을 확보하기 위한 중계서버를 일컫는다. 클라이언트와 웹 서버의 중간에 위치하고 있기에, 이 통신을 받아주는 것을 '프록시 서버'라고 부른다.그렇다면 JPA 관점에서의 프록시란 뭘까? "em.find()"와 "em.getReference()", EntityManager에 대한 두 가지 메서드가 여기 있다. 이 둘은 조회라는 관점에서는 비슷하지만 조회를 하는 방식이 다르다."em.find()"는 데이터베이스를 통해서 실제 엔티티 객체를 조회한다."em.getReference()"는 데이터베이스 조회를 미루는 프록시 엔티티 객체를 조회한다.em.getReference()해당..
1. 상속관계 매핑객체는 상속관계가 존재하지만, 관계형 DB에는 상속 관계가 없다.그나마 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사한데,이 "상속 관계"라는 것은 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것을 말한다.슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법?객체는 상속을 지원하기에 모델링과 구현이 똑같지만, DB는 상속을 지원하지 않기에 논리 모델을 물리 모델로 구현하는 방법이 필요하다.이에 대해 DB의 슈퍼타입 서브타입 논리 모델을 물리 모델로 구현하는 방법은 3가지가 존재한다. 이를 알아보자.주요 어노테이션@Inheritance(strategy=InheritanceType.XXX)JOINED: 조인 전략SINGLE: 단일 테이블 전략TABLE_..