[개발 일기] 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에 미리 생성되어있는 객체를 받아 사용한다.   🚀 트랜잭션 트랜잭션이란 데이터베이스의 상태를 변경하기 위해 수행되는 작업의 단위를 말한다.  만약 하..
[개발 일기] 2025.02.15 - Security Context
·
개발 일기
💡 개요Spring Security는 인증 및 권한 관리를 담당하는 프레임워크다. 오늘은 Spring Security에서 인증된 사용자 정보를 관리하는 Spring Context에 대해 정리해 보자.   📕 Security ContextSecurity Context는 Spring Security에서 인증된 사용자 정보를 저장하는 공간이다.  보통 Spring Security에서 JWT 기반 인증을 사용하면, 클라이언트는 요청할 때 JWT 토큰을 함께 보낸다. 이 토큰의 페이로드에는 사용자를 식별할 수 있는 정보(예: 사용자 ID, 이메일 등)가 포함되어 있다.  Spring Security는 이 JWT 토큰을 검증하고, 인증이 성공하면 인증된 사용자 정보를 Security Context에 저장한다. ..