| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- Docker
- Cache
- 자격증
- aws
- serverless
- Spring Boot
- 오블완
- jvm
- 기본형
- 자바
- spring
- 개발자
- bootcamp
- data
- goorm x kakao
- QueryDSL
- java
- MSA
- Redis
- nosql
- orm
- jpa
- CodeCommit
- goorm
- backenddeveloper
- 티스토리챌린지
- 스터디
- s3
- backend
- Today
- Total
목록전체 글 (82)
gony-dev 님의 블로그
지난 포스팅에서는 클라이언트와 가장 밀접하게 작용하는 '브라우저 캐시'에 대해 간단히 알아보았다.이번에는 두 번째 계층인 CDN에 대해 알아보자.2026.08.12 - [Caching] - 브라우저 캐시란? CDNCDN(Content Delivery Network)란 지리적으로 분산된 서버 네트워크를 통해 사용자에게 웹 콘텐츠를 빠르고 안전하게 전달하는 시스템이다.원본 서버 대신 사용자와 가장 가까운 곳에 위치한 캐싱된 데이터를 전달해 로딩 속도를 높인다. 예를 들면 해외(=원본 서버)에서 출판된 책이 있다고 하자. 해당 책을 읽고 싶으면 직접 해외에서 배송받는 방법이 있다.하지만 이제는 근처 서점(=CDN)에서 해당 책을 쉽게 구매할 수 있다.그렇게 하면 언제든 집(=브라우저 캐시)에서 쉽게 독서를 즐..
최근 캐싱 기법을 공부하며 재미를 느꼈다.캐시는 단순히 DB 접근 최소화만 해주는 것이 아닌, 목적과 상황에 따라 적용하는 방식이 다르다.이에 대해 알아보도록 하자. 전체 캐시 계층 지도캐시는 계층별로 크게 6가지로 나뉜다.브라우저 캐시CDNIn-App Local Cache공유 캐시DB Buffer CacheDisk그 중에서도 우리는 브라우저 캐시에 대해 알아보도록 하자.프론트엔드에게 더 중요하게 다가올 개념이지만 네트워크 통신의 관점에서 백엔드도 알아두면 좋을 것 같다.1. 브라우저 캐시간단히 말해 사용자 브라우저에 저장하는 캐시이다.Naver에 접속할 때 검색창이나 카테고리 같은 매번 요청해도 같은 결과를 반환하는 리소스들을 저장하기 위해 사용된다.When?CSS, JS, 이미지 같은 정적 리소스를 ..
오랜만에 글을 쓰게 되었다..스타트업도 해보고 코딩과는 전혀 다른 분야도 경험해보며 CS 지식을 잊어갔다..그래서 다시 한 번 마음을 잡고자 오랜만에 포스팅을 해보기로 했다.캐싱 전략?이전 포스팅에서 인메모리 방식인 Redis의 여러 사용 방식들을 알아보기도 하고,스프링에 직접 적용해 보았다. 캐싱은 데이터 반환 속도를 최소한으로 줄여주고, DB 접근 빈도를 낮추어 커넥션 풀이 고갈되는 현상을 막아준다.이렇게 캐싱은 좋지만 한 가지 문제를 항상 유의해야 한다.바로 데이터 정합성이다.데이터 정합성은 캐시 저장소와 DB 내의 데이터가 일치하지 않아 발생하는 현상으로 Race Condition이라고도 부른다. 이번 포스팅에서는 Race Condition을 해소하기 위한 캐싱의 다양한 전략들을 알아보고, 이 전..
대면 라이브 코딩 면접이 요즘 늘어가는 추세라고 한다.자유롭게 AI를 활용하여 정해진 시간 안에 주어진 문제를 해결해나가면 되는 방식인데,필자도 최근에 이 면접을 보았다. 도대체 뭐길래 AI를 자유롭게 활용할 수 있는 걸까?이 의문은 면접이 시작되자마자 해결되었다.이제는 단순 자료구조나 알고리즘만으로 판가름하는 시대는 지나간 것이리라.회사에서 요구하는 프레임워크에 의거하여 간단한 구현 프로젝트를 만드는 것이다. 처음 겪는 면접이라 당황하기도 했지만 어찌저찌 문제는 다 해결했다.하지만 진짜 '문제'는 바이브 코딩을 통해 해결한 코드를 설명하는 방식이었다.스프링 동작 방식과 메서드에 대한 설명은 잘 이루어냈지만 애석하게도 세부적인 질문들은 잘 설명하지 못했다. 자세하게는 밝힐 수는 없지만 그 중 하나인 Ba..
😭 Situation프로젝트 리팩터링 작업 중, 댓글 생성 기능을 검토하다가 쿼리문에 문제 발생 우려가 제기되었다. 댓글 생성 기능은 댓글과 대댓글의 생성 로직이 달라 API를 분리하였다.댓글 객체에는 댓글 그룹을 지정하기 위해 commentGroup 필드를 생성하였다.@Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Comment extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name ..
지난 시간에는 자바에서 빠질 수 없는 객체 지향 클래스에 대해 알아보고 실습해보았다![JAVA] - JAVA의 꽃, 객체 지향 프로그래밍(OOP)의 클래스 문법이번에는 구체적이지 않지만 중요한 "Abstract"에 대해 알아보도록 하자. 추상화?추상적이라는 단어는 현실의 구체적인 형태나 모습이 아닌 여러 사물에서 공통된 속성을 뽑아내어 만든 개념 또는 관념적인 것을 의미한다. 지금까지 우리가 실습하며 작성해왔던 클래스는 구체적으로 데이터를 담아 인스턴스화하여 다루었다.이번에 배우게 될 추상 클래스는 구현부가 없는 메서드를 포함하여 자식 클래스에서 반드시 구현화해야하는 클래스이다.당연히 인스턴스화가 불가능하며, 선언 시 "abstract" 키워드를 추가해야한다.객체 지향 프로그래밍에서 듣게 되는 '추상화'..
지난 시간에는 배열에 대해 알아보고 코드에 적용하는 시간을 가졌다.[JAVA] - JAVA 배열을 모르겠다고? 알려드리겠습니다!이번 시간에는 객체 지향 프로그래밍에서 필수적인 요소인 클래스에 대해 파헤쳐 보자! 객체 지향 프로그래밍(Object Oriented Programming)이란?"객체" 개념을 기반으로 데이터를 속성과 기능으로 묶어 프로그램을 설계하는 방식으로 줄여서 OOP라고 부른다.객체는 현실 세계에서의 의미 그대로 '사물'을 의미하며, 클래스라는 '설계도'를 기반으로 만들어진다. 다형성(Polymorphism), 추상화(Abstraction), 상속(Inheritance), 캡슐화(Encapsulation)의 4대 특징을 통해 코드 재사용성 및 유지보수, 확장성을 높히는 것이 목표이다. 우..
이전 시간에는 기본형 타입의 실수, 정수형에 대해 형변환하는 원리와 실습을 학습해보았다.[JAVA] - JAVA 타입 형변환이번 시간에는 프로그래밍을 하며 결코 빠질 수 없는 배열에 대해 알아보자! 배열 자료형이란?배열은 이전 시간까지 배웠던 Primitive Type이 아닌 Reference Type에 해당하는 자료형으로,하나의 타입에 대해 여러 데이터들을 모아 구조적으로 다룰 수 있게 한다. 구성하는 각각의 값을 배열 요소(element)라고 하며, 위치를 가리키는 숫자를 인덱스(index)라고 한다.배열을 생성해보자!int[] nums = new int[100]; // int형 배열 생성nums[0] = 1;nums[1] = 2;nums[2] = 3;char[] chArr = new char[100..
지난 시간에는 JAVA 기본형 타입들에 대해 자세히 알아보았다.[JAVA] - JAVA 기본형 데이터 타입이번에는 JAVA 타입들의 형변환 원리에 대해 알아보고 이를 어떻게 적용하는지 알아보도록 하겠다. 타입 변환하나의 타입을 본인 타입 제외하고 다른 타입으로 바꾸는 것을 타입 변환 or 형변환이라고 한다.프로그래밍 실행 동안에는 반드시 같은 타입끼리 값의 대입이나 연산을 수행할 수 있다.그래서 같은 기본형 타입 정수형이라고 해도 타입(int, long..)이 다르면 같은 타입으로 변환해주어야하기 때문에 형변환 작업이 필요하다. 타입 변환에는 규칙이 존재한다. 메모리에 할당받은 바이트의 크기가 상대적으로 작은 타입에서 큰 타입으로의 변환은 생략할 수 있다.하지만 메모리에 할당받은 바이트의 크기가 큰 타입..
지난 시간에는 JAVA 데이터 자료형의 기본형 타입과 참조형 타입에 대해 각 종류와 특징에 대해 알아보았다.[JAVA] - JAVA 변수 종류이번 시간에는 기본형 타입에 대해 더 자세히 알아보도록 하겠다. 1. 기본형 타입 - 정수형자바 언어의 기본형 타입 중 정수형은 총 4가지로, byte, short, int, long이다.int, long이 대부분 사용되며, byte, short는 나도 프로젝트에서 사용해 본 적이 거의 없다..타입기본값할당되는 메모리 크기데이터 표현 범위byte01 byte-128 ~ 127short02 byte-32,768 ~ 32,767int04 byte-2,147,483,648 ~ 2,147,483,647long0L8 byte-9,223,272,036,854,775,808 ~..