profile
기록을 통한 성장을
post-thumbnail

[Spring] OSIV

영속성 컨텍스트를 뷰까지 열어두는 기능이다. 영속성 컨텍스트가 유지되면 엔티티도 영속 상태로 유지된다. 뷰까지 영속성 컨텍스트가 살아있다면 뷰에서도 지연 로딩을 사용할 수가 있다.JPA에서는 OEIV(Open EntityManager In View), 하이버네이트에선

3일 전
·
0개의 댓글

[Spring] 영속성 컨텍스트

데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManager Factory를 하나만 생성한다.EntityManager Factory는 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간에 공유해도 되지만, EntityManager는 여러

7일 전
·
0개의 댓글
post-thumbnail

[Spring] @Transactional 롤백은 언제 되는 걸까?

프로그래밍에서 예외란 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름을 어긋나는 경우를 말한다. 그리고 자바에서 예외는 개발자가 직접 처리할 수 있기 때문에 예외 상황을 미리 예측하여 핸들링할 수 있다.그러

2022년 6월 20일
·
0개의 댓글
post-thumbnail

[회고] 졸업프로젝트 회고

기계공학과로 입학했지만, 물리가 세상에서 제일 싫었고🤮 새로운 길을 찾다 사이버보안 수업을 듣게 되었다. 4학년에 복수전공을 하는게 맞을까? 라고 고민했지만, 안 하고 후회하는 것 보다, 하고 싶으면 일단 한번 해보고 후회하지 않을 유의미한 결과를 만들자 라는 내 인

2022년 6월 17일
·
2개의 댓글

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 5장 : 안정 해시 설계

N개의 캐시 서버가 있다고 할 때, 이 서버들에 부하를 균등하게 나누는 보편적인 방법은 아래와 같은 해시 함수를 사용하는 것이다.서버 풀의 개수가 고정되어 있을 때에나 부하를 균등하게 나눌 수 있다.만약 한 서버에 이상이 발생하여 서버 풀의 개수가 줄어들거나, 트래픽이

2022년 6월 14일
·
0개의 댓글

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 4장 : 처리율 제한 장치의 설계

API 처리 장치의 장점 DoS (Denial of Service) 공격 방지 비용 절감 서버 과부하를 막는다. 시스템 설계 4단계 접근법을 적용해보자 1단계 문제 이해 및 설계 범위 확정 요구사항 설정된 처리율을 초과하는 요청은 정확하게 제한한다 낮은 응닫시간 : 이 처리율 제한 장치는 HTTP 응답시간에 나쁜 영향을 주어서는 곤란하다. 적은 메모리 ...

2022년 6월 10일
·
0개의 댓글

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 3장 : 시스템 설계 면접 공략법

시스템 설계 면접이 있는 이유 모호한 문제를 훌기 위해 협력하여 그 해결책을 찾아내는 과정에 대한 시뮬레이션 이 면접을 통해 어떤 것을 보여줘야할까 설계 능력의 기술적 측면 협력에 적합한 사람 압박이 심한 상황도 잘 헤쳐나가는 자질 모호한 문제를 건설적으로 해결할 능력 좋은 질문을 던질 능력 지양해야할 것 설계의 순수성에 집착한 나머지 트레이드 오프를...

2022년 6월 10일
·
0개의 댓글

[JPA] NULL 제약 조건과 조인 전략

JPA는 매핑관계의 필수 여부에 따라 실제 데이타베이스로 보내는 SQL 구문이 달라진다.@ManyToOne 의 optional 속성이 true (default) 이거나 @JoinColumn 의 nullable 속성이 true(default) 인 경우에는 Team이

2022년 6월 7일
·
0개의 댓글

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 2장 : 개략적인 규모 측정

보편적으로 사용되는 성능 수치 항목들을 추정해서 계산하는 것필요한 기본기로 2의 제곱수나 응답지연(latency) 값과 가용성에 관계된 수치들의 이해가 있어야 한다.2의 제곱수응답지연 값가용성에 관계된 수치들데이터 볼륨 단위를 계산하기 위해 사용 (양을 측정) 최소단위

2022년 6월 6일
·
0개의 댓글

[트러블슈팅 - Spring] Unable to find a @SpringBootConfiguration

DemoApplicationTest 는 정상 실행 될 것이다. MyCusTomTest 는 위의 에러를 만날 것이다. MyCustomTest 가 찾을 수 있는 스프링부트 설정 클래스가 없기 때문이다.스프링부트 실행 클래스는 자신의 패키지에서부터 스프링부트 설정 클래스를

2022년 6월 5일
·
0개의 댓글
post-thumbnail

[트러블슈팅 - Spring] Found multiple @SpringBootConfiguration annotated classes

테스트에서 DI를 위해서 @SpringBootApplication을 사용하고 있다.같은 패키지 안에 @SpringBootApplication 어노테이션이 중복 선언되어 발생하는 문제@SpringBootTest() 어노테이션을 사용하여 DI를 하였다.

2022년 6월 5일
·
0개의 댓글
post-thumbnail

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 1장 : 사용자 수에 따른 규모 확장성

1\. 사용자는 도메인 이름을 이용하여 웹사이트에 접속한다. 이 접속을 위해서는 도메인 이름을 도메인 이름 서비스에 질의하여 IP 주소로 변환하는 과정이 필요하다.2\. DNS 조회로 웹 서버의 IP 주소가 반환된다.3\. 해당 IP 주소로 HTTP 요청이 전달된다.

2022년 6월 2일
·
0개의 댓글

[Spring] Feign client 적용기

마이크로서비스에서 서비스간 통신을 위한 2가지 방법이 있다.Rest Template vs Spring Cloud OpenFeign기존 프로젝트에서Rest Template으로 구현되어 있던 api 호출을 Spring Cloud OpenFeign으로 대체해보고 차이점을 알

2022년 5월 31일
·
0개의 댓글

[HTTP] HTTP 메서드에 관해 아는대로 설명해주세요

클라이언트랑 소통을 하기위해 사용하는 HTTP 메서드...정확하게 전달할 수 있도록 정리해보자.HTTP 메소드의 종류는 총 9가지가 있다. 이 중 주로 쓰이는 메소드는 5가지가 있다. 이제 각각의 이름과 특징에 대해 알아보도록 하자.GET : 리소스 조회POST : 요

2022년 5월 26일
·
0개의 댓글

[NestJS] Logger

서비스에 기능이 늘어나고 사이즈가 커지게 되면 동작 과정을 남기고 추적하는 일이 중요이슈가 발생했을 경우 이슈 증상만으로 원인을 파악하는 데에는 시간과 노력이 많이 들고 코드를 다시 역추적하면서 이해하는 데에 어려움이슈가 발생한 지점과 콜스택이 함께 제공된다면 빨리 해

2022년 5월 21일
·
0개의 댓글

[NestJS] Task Scheduling

AppModule에 importservice에서 선언Asterisk (e.g. \*) : everyRanges (e.g. 1-3,5) Steps (e.g. \*/2)사용예시name 값을 준 cron을 아래와 같이 사용할 수 있다.// 매분의 5초마다 실행 (1분 5초,

2022년 5월 21일
·
0개의 댓글

[DOCKER] Docker 와 VM의 차이에 대해 설명해주세요

면접때 이 질문을 받았지만, 대답을 하지 못했다.다음에는 답변할 수 있도록 공부해보자.도커는 기존의 가상화 기술을 기반으로 만들어졌다. 기존의 가상화 기술을 알아보고 도커와 비교해 본다면 도커를 조금 더 이해해보자.가상화 이전의 시대에서는 하나의 서버에 하나의 어플리케

2022년 5월 18일
·
0개의 댓글

[Javascript/Typescript] Javascript의 슈퍼셋 언어 Typescript

타입스크립트는 자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어이다. 마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. C자바스크립트의 모든 단점을 보완해 만든 언어이다. (JS의 확장버전)동적인 자바스크립트 언어에 타입을 미리 부여함으로써 컴파일 시 에

2022년 5월 15일
·
0개의 댓글

[Javascript/Typescript] Node.js는 어떻게 싱글 스레드로 논블로킹 비동기 작업을 지원하는걸까?

흔히 Node.js를 싱글 스레드 논 블로킹이라고 한다. Node.js는 하나의 스레드로 동작하지만 I/O 작업이 발생한 경우 이를 비동기적으로 처리할 수 있다. 분명 하나의 스레드는 하나의 실행 흐름만을 가지고 있고 파일 읽기와 같이 기다려야 하는 작업을 실행하면 그

2022년 4월 26일
·
0개의 댓글

[트러블슈팅 - Lambda] AWS Lambda를 사용하며 발생한 수많은 이슈

진행하고 있는 프로젝트에 아래와 같은 기능이 필요했다.MP4 파일 업로드 -> 파일에서 음원만 분리 -> 학습시킨 모델을 이용해서 음원을 텍스트로 변환Machine Learning을 위해 서버를 올리는 것에서 서버리스 아키텍쳐인 Lambda로 변경한 이유는 다음과 같다

2022년 4월 23일
·
0개의 댓글