profile
봄은 영어로 스프링

스프링 Autowired 작동 방식

@Autowired 어노테이션은 스프링 프레임워크에서 의존성 주입을 자동화하기 위해 사용된다.의존성 주입은 빈 라이프사이클 마지막에 진행되며, BeanPostProcessor의 구현체인 AutowiredAnnotationBeanPostProcessor를 사용한다.코드를

어제
·
1개의 댓글
·
post-thumbnail

스프링 컨테이너(Application Context)

스프링 컨테이너는 스프링 프레임워크의 핵심중 핵심 모듈로 객체의 초기화부터 소멸까지 관리해준다.자바는 객체를 직접 생성하고 호출했었는데 스프링에선 컨테이너 덕분에 비즈니스 로직에 집중할 수 있다.Application ContextBeanFactoryBeanDefinit

2023년 5월 16일
·
2개의 댓글
·

스프링 프록시

객체 지향 디자인 패턴 중 하나로, 객체에 대한 접근을 제어하기 위해 중간에 대리자(proxy) 객체를 두는 것. 프록시는 실제 객체와 동일한 인터페이스를 구현하지만, 실제 객체에 대한 요청을 중간에 가로채서 필요한 작업을 수행하고, 그 결과를 반환한다. 이를 통해 실

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

파티셔닝과 샤딩

데이터베이스의 볼륨이 커질수록 성능은 감소하게 된다. 이를 해결하기 위한 대표적인 방법으로 파티셔닝과 샤딩이 있다. 이 글은 MySQL 8.0 버전의 InnoDB를 기준으로 작성되었다.파티셔닝과 샤딩에는 두가지 방법이 있다.레코드별로 분리하는 수평 분할을 뜻한다. 스키

2023년 5월 10일
·
0개의 댓글
·
post-thumbnail

쿼리 실행 계획

쿼리 실행 계획 전에 쿼리 실행 절차부터 알아보자사용자가 요청한 SQL을 분해해서 MySQL서버가 이해할 수 있는 수준으로 분리1 단계에서 만들어진 파스트리를 확인하고 실행계획을 수립한다.2 단계에서 결정된 실행계획으로 스토리지 엔진으로부터 데이터를 가져온다.MySQL

2023년 5월 9일
·
0개의 댓글
·

2023년 1분기 회고

나는 어떤 사람이 되고 싶었을까.하루빨리 사회에서 나의 가치를 평가받고 싶었고 동시에 높은 가치로 책정받고 싶었다.높은 가치를 얻으려면 일(개발)을 잘해야 된다 생각했다. 따라서 일하는 방법과 사고방식을 배우고자 프로그래머스 데브코스를 수강하고 있었다. 일 잘하는 개발

2023년 4월 26일
·
2개의 댓글
·
post-thumbnail

JVM 메모리 구조

출처(https://steady-coding.tistory.com/305)JVM의 구조는 사진과 같이 이루어져 있으며, 그 중 데이터 영역은 5가지로 나누어져 있다.JVM(Java Virtual Machine)은 Java 애플리케이션을 실행하는 데 필요한 가상

2023년 4월 20일
·
0개의 댓글
·
post-thumbnail

직렬화와 역직렬화

객체를 바이트 스트림으로 바꾸는 과정직렬화의 기준으로 포맷으로 Java 포맷, XML, JSON등이 있다.자바 포맷이 더 빠르지만, 가독성과, 플랫폼의 다향성때문에 사실상 JSON이 표준바이트 스트림 : 8비트의 연속된 데이터 흐름, 컴퓨터에서 데이터를 바이트 단위로

2023년 4월 18일
·
0개의 댓글
·

B-Tree, B+Tree

B-Tree와 B+Tree는 데이터베이스에서 사용되는 자료구조로, 대량의 데이터를 저장하고 탐색하는 데에 효율적이다.Balance Tree라는 뜻의 B-Tree는 Node들이 균형을 잡히도록 설계되었다. 검색,삽입,삭제 모두 O(log N)각 노드는 하나 이상의 자식

2023년 4월 13일
·
0개의 댓글
·

Gradle life cycle

그래들은 종속성을 정의하고 순서대로 실행되도록 보장한다.빌드는 세 가지 단계로 진행된다.설정 파일을 감지한다. gradle파일을 찾고(멀티), 찾지 못하면(싱글) setting.gradle을 빌드한다.gradle 파일은 init, setting, build 세가지가 있

2023년 4월 7일
·
0개의 댓글
·
post-thumbnail

DB 커넥션 시간을 줄여보자

리팩토링을 하며 사용자가 많아질때 서버에 부담을 줄일 방법에 대해 생각해보았다.TPS 개선(캐시, 쿼리튜닝)서버 증설DB 커넥션 시간 줄이기3가지 정도 생각이 났는데, 오늘은 DB 커넥션 타임을 줄여볼 생각이다.현재 성능 개선이 필요할 정도로 많은 트래픽이 있거나, 트

2023년 4월 3일
·
0개의 댓글
·

CI/CD 시간을 줄여보자(Github Actions)

새로운 pr을 생성하고, 머지할때 두근대는 마음으로 성공 여부를 기다린다.프로젝트 배포 자동화를 Git Actions을 이용하고 있는데, 5분 가까운 시간이 소요된다는건 오래걸린다 생각이 들어 ci/cd 스크립트를 수정해서 시간을 줄여보도록 한다.기존의 ci 방식을 살

2023년 3월 30일
·
0개의 댓글
·

HTTP와 HTTPS의 차이점

HTTP 1.1기본적으로 Connection 하나당 하나의 요청을 처리하도록 설계되어 있다.동시에 여러개의 리소스를 주고받는 것이 불가능 하기 때문에 순차적으로 이루어진다. → 다수의 리소스를 처리할 때 latency가 생긴다.이러한 특성 때문에 Head Of Line

2023년 3월 29일
·
0개의 댓글
·
post-thumbnail

Sentry를 사용해 어플리케이션 모니터링

Hey, Cake 베타버전을 배포하고 200명이 넘는 사용자들이 이용해주었다. 첫 배포때는 예상치 못한곳에서 많은 오류가 발생했었는데, 사용자 설문과 Cloud Watch의 로깅으로 오류를 추적하는 것은 불편했다.모니터링 툴을 붙여보자!그라파나,프로메테우스, 키바나등

2023년 3월 28일
·
0개의 댓글
·
post-thumbnail

프로그래머스 백엔드 데브코스 3기 후기겸 회고

데브코스를 수료한지 일주일 넘게 지났다. 돌이켜보니 정말 짧게 느껴지는 5개월이지만, 데브코스의 전과 지금 나는 비교할 수 없다고 생각한다.후기 포스팅이니 자세히 안적겠습니다.자기소개서는 6문항 3~500자였다.3시간 코테 3문제 cs 15문제였던거 같은데 기억이 잘

2023년 3월 24일
·
0개의 댓글
·

프로젝트 회고 - Hey, cake

깃허브노션발표 영상베이커리 시장이 점점 확대됨에 따라 규모가 1.5조까지 성장하였다.베이커리 시장이 성장함에 따라 맞춤 제작 케이크 시장의 폭팔적이 성장이 이루어졌다.성장하는 시장 규모와는 다르게 케이크를 맞춤제작 하기 위해서 구매자가 발품을 팔아야 하는 불편함이 존재

2023년 3월 23일
·
0개의 댓글
·
post-thumbnail

연관관계 없이 조인 및 DTO로 반환(queryDsl)

내 주문 리스트를 조회하는 api를 작성했다.조회할 엔티티는 위와 같고, 조건은 visit_date로 오름차순 정렬,orderStatus가 없으면 전체 조회, 있으면 where절의 조건이 된다.커서기반 페이지네이션위 조건(동적쿼리, 페이지네이션)을 만족하려면 jdbcT

2023년 3월 23일
·
0개의 댓글
·

프로젝트 회고 - Shoe Kream

프로그래머스 백엔드 데브코스의 첫번째 팀 프로젝트가 끝난지 한 달이 지났다. 회고는 미리 작성했지만, 포스팅은 지금 한다.깃허브노션프로젝트의 주목적은 "스프린트 진행하기", "도전적인 기술 사용하기"이었다. 회의를 통해 각자 하고싶은 것, 도전하고 싶은 기술을 나열한

2023년 3월 21일
·
0개의 댓글
·
post-thumbnail

선착순 쿠폰 이벤트 개발기2 (feat.Redis)

선착순 쿠폰 이벤트 개발기를 진행한 뒤 분산락에 대해서 알게 되어 스핀락보다 분산락이 더 효율적이라는 생각에 redis 클라이언트를 변경해보았다.implementation 'org.redisson:redisson-spring-boot-starter:3.16.8'lett

2023년 3월 21일
·
0개의 댓글
·

EC2 메모리 부족 해결(swap file)

EC2 프리티어를 사용중 CD/CD를 위해 deploy-agent와 docker를 사용하는데 메모리가 부족한 현상이 일어났다.swap file이란 메모리가 부족할 때 디스크 일부분을 메모리에서 사용하는 방법이다.더 많은 메모리를 사용할 수 있다는 장점이 있지만, 디스크

2023년 3월 18일
·
0개의 댓글
·