[개발 일기] 2025.02.21 - CDN(콘텐츠 전송 네트워크)
·
개발 일기
💡 개요오늘은 네트워크 기술인 CDN에 대해 정리해 보자.   📕 CDN (Content Delivery Network)CDN이란 Content Delivery Network의 약자로 물리적으로 거리가 먼 콘텐츠를 더 빠르게 제공하기 위해 사용되는 기술이다.  예를 들어, 서울에 데이터센터를 두고 있는 서비스가 있다고 가정해 보자.  이때, 런던에 있는 사용자가 해당 서비스에 접속하려고 하면, 물리적인 거리로 인해 지연 시간이 발생할 가능성이 크다.  이러한 문제를 해결하기 위해 CDN은 원본(origin) 서버의 데이터를 여러 지역에 분산하여 저장하고, 사용자와 가까운 서버에서 콘텐츠를 제공한다.  즉, 런던과 가까운 곳에 데이터센터를 배치하고, 원본 서버의 데이터를 해당 데이터센터에 동기화함으로써..
[개발 일기] 2025.02.20 - 리눅스 Swap Memory
·
개발 일기
💡 개요오늘은 리눅스 메모리 관련 기술인 Swap Memory에 대해 정리해 보자.   📕 Swap리눅스에서 Swap Memory 란 주 메모리(RAM)의 저장공간이 부족해질 경우, 디스크에 남아있는 저장공간을 마치 주 메모리처럼 사용하는 기술이다.  물론 디스크를 주 메모리로 사용하는 것이기 때문에 성능 측면에선 그렇기 좋지 않다.  하지만 AWS EC2 인스턴스가 프리티어이고, 메모리 용량을 더 키우고 싶다면 Swap 메모리를 사용하는 것도 하나의 대책이 될 수 있다.  🚀 EC2 인스턴스에서 Swap 메모리 설정하기 이번 예제에서는 AWS EC2 t2.micro 인스턴스에서 Swap 메모리를 설정하는 방법을 다룬다.  아래는 Swap 예제를 위해 생성한 EC2 인스턴스이다.  현재 인스턴스의 ..
[개발 일기] 2025.02.19 - 서브 도메인
·
개발 일기
💡 개요OKKY에서 서브 도메인의 속도와 관련된 게시글을 봤다.  사실 서브 도메인이라는 개념은 들어본 적 있지만, 정확히 무엇인지, 그리고 어떤 목적에서 사용하는지 아직 확실하게 알지 못한다.  그래서 오늘, 서브 도메인에 대해 정리해보려고 한다.   📕 서브 도메인도메인이란 실제 서버의 IP를 인간이 알아보기 쉬운 형태로 표현한 문자열이다.  이 문자열은 DNS 서버를 통해 실제 IP 주소와 매핑되며, 이를 통해 사용자는 IP 주소와 같은 복잡한 숫자 대신 도메인 이름을 입력해 원하는 서버에 접속할 수 있다.  서브 도메인은 도메인의 하위 개념이다.  다음은 네이버의 도메인과 서브 도메인이다.  도메인네이버 메인 플랫폼 : naver.com 서브 도메인네이버 블로그 : blog.naver.com네..
[개발 일기] 2025.02.18 - 한글과 VARCHAR
·
개발 일기
💡 개요오늘은 MySQL의 VARCHAR 타입과 한글의 관계, VARCHAR 타입에 한글을 저장할 때, 영어와 차이점에 대해 정리해 보자.   📕 VARCHARMySQL에서 VARCHAR는 문자열 데이터를 저장하는 데 사용되는 타입이다.  문자열을 저장할 수 있는 또 다른 타입으로 CHAR가 있지만, 이는 고정 길이 문자열을 저장하는 방식이다.  반면, VARCHAR는 가변 길이 문자열을 저장할 수 있어 메모리를 보다 효율적으로 사용할 수 있다.  따라서, 문자열의 길이가 일정하지 않은 데이터를 저장할 때는 VARCHAR를 사용하는 것이 더 유연한 선택이 될 수 있다.   🚀 언어와 VARCHAR VARCHAR에 영어와 한글을 저장할 때, 같은 길이를 지정해도 저장할 수 있는 문자 개수가 달라진다...
[개발 일기] 2025.02.17 - Service 여러 개 Repository (Feat : Facade 패턴)
·
개발 일기
💡 개요보통 개발할 때, Service 계층에 너무 많은 Repository 를 의존하고 있으면 뭔가 찝찝하다..  단일 책임 원칙을 지키지 못한 느낌..?  이러한 상황을 조금이나마 해결할 수 있는 Facade 패턴이 있다.  오늘은 Facade 패턴에 대해 정리해보자.   📕 Facade 패턴Facade 패턴이란 시스템의 복잡한 구조를 쉽게 볼 수 있고, 사용하도록 설계한 패턴이다.  역시나 말만 들으면 이해하기 어렵다.  다음은 Facade 패턴이 적용되지 않은 BoardService 이다. @Service@RequiredArgsConstructorpublic class BoardService { private final MemberRepository memberRepository; ..
[개발 일기] 2025.02.16 - Transaction Synchronization
·
개발 일기
💡 개요오늘은 JDBC에서 사용되는 트랜잭션 동기화(Transaction Synchronization)에 대해 정리해보자.  📕 Transaction Synchronization트랜잭션 동기화를 알기 위해선 일단 데이터베이스에 접근하기 위해 사용되는 Connection 객체와 트랜잭션에 대해 알고 있어야 한다.  🚀 Connection JDBC 환경에서 커넥션이란 데이터베이스와 통신을 위해 사용되는 객체이다.  즉, 커넥션을 통해 SQL 실행을 위한 객체를 생성하고 트랜잭션을 관리할 수 있다.  그리고 커넥션 객체 생성은 Connection Pool에 미리 생성되어있는 객체를 받아 사용한다.   🚀 트랜잭션 트랜잭션이란 데이터베이스의 상태를 변경하기 위해 수행되는 작업의 단위를 말한다.  만약 하..