전체 글 썸네일형 리스트형 대전 유성구에 미친 디테일로 본인을 홀린 제주도 고깃집이다 이말이다 본인은 디테일에 환장하는 변태다.이건 거의 병이다.본인도 모르게 고개를 갸웃거리며 '왜 이런 것까지 신경을 썼지?' 하다가마음속으로 발 박수를 치고 있다 이 말이다.그런 본인이 이번에 다녀온 곳은 대전 유성구에 있는 ‘상대돈’이라는 고깃집이다.이름부터 뭔가 고향 돼지 냄새가 나는 것 같지 않은가.본인은 개고기 빼고 돼지고기를 제일 좋아한다.이번에도 돼지고기 맛집을 찾아갔는데 이 집이 본인의 똘끼를 자극할 줄은 몰랐다. 입구부터 이 집은 심상치 않았다.문패에 ‘OPEN’과 ‘CLOSED’라고 안 쓰고‘물 열었슈’ ‘문 닫았슈’라고 써놓은 것이다.이거 완전 제주도 스타일 아닌가?본인도 제주도 출신은 아니지만 이런 지역 색깔 살리는 디테일은 칭찬해 줘야 마땅하다.사장님은 분명 디테일에 미쳐서 밤낮으로 고민했을.. 더보기 TIL.56 JPA 플러스 Trouble Shooting 1. FetchType LAZY -> EAGER -> LAZY처음에 해당 오류를 봤을 때 FetchType이 LAZY이기 때문에 순회 접근에서 해당 정보를 찾기 위해 N+1 문제가 일어난다고 생각했고, EAGER로 변경했을 때 한 번에 정보들을 모두 조회해 오기 때문에 추가적인 쿼리가 실행되지 않고 N+1 문제가 해결될 것이라는 생각을 했습니다.하지만 FetchType을 Eager로 설정하게 된다면불필요한 데이터를 미리 가져와 메모리를 낭비하거나, 관련된 엔티티가 많아질 경우에 쿼리가 너무 복잡해지고오히려 응답속도도 느려질 수 있다는 생각을 하였고,다시 LAZY로 변경 후에 fetch join과 EntityGraph를 사용하는 방법 중fetch join 방식은 사용해 봤기 때문에 EntityGraph를 .. 더보기 TIL.55 Redis(Remote Dictionary Server) 1. Redis란?Redis는 Remote Dictionary Server의 약자로,데이터베이스이자 캐시, 메시지 브로커로도 사용되는오픈 소스 인메모리 데이터 구조 저장소입니다. Redis는 빠른 데이터 읽기 및 쓰기가 필요한 상황에서 매우 유용합니다.주로 데이터를 메모리에 저장하기 때문에일반적인 디스크 기반 데이터베이스보다 훨씬 빠릅니다.데이터는 디스크에 백업될 수도 있지만,주로 메모리에 상주하므로 속도가 빠르고,키-값(key-value) 구조와 같은 다양한 데이터 구조를 지원합니다. 2. 주요 특징 1) 인메모리(In-memory) 저장 모든 데이터를 메모리에 저장하므로매우 빠른 속도로 데이터를 읽고 쓸 수 있습니다.2) 데이터 구조 지원 단순한 키-값 외에도문자열, 해시, 리스트, 셋, 정렬된 셋,.. 더보기 TIL.54 AWS EC2 프리티어(무료 사용) AWS EC2(Amazon Elastic Compute Cloud)는사용자가 필요에 따라 가상 서버(인스턴스)를 생성하고 관리할 수 있는클라우드 컴퓨팅 서비스입니다.EC2는 서버 설정, 웹 애플리케이션 호스팅, 데이터베이스 서버 운영, 머신러닝 모델 학습 등 매우 다양한 목적으로 활용할 수 있습니다. 1. AWS 프리 티어에서 EC2 인스턴스 무료 사용 AWS 프리 티어 가입자는첫 12개월 동안 매월 최대 750시간의t2.micro 인스턴스 사용이 무료입니다.t2.micro 인스턴스는AWS에서 제공하는 소형 인스턴스 타입으로,작은 규모의 웹 애플리케이션 테스트, 가벼운 서버 설정 연습 등에 적합합니다.1) 750시간의 의미 매월 최대 750시간의 무료 사용이 주어지므로한 달 동안 24시간 내내 t2.mi.. 더보기 TIL.53 제로데이 공격(Zero-Day attacks)과 실제 사건들 1. 제로데이 공격(Zero-Day attacks)이란?제로데이(Zero-day) 공격은보안 취약점이 공개되거나 패치가 제공되기 전에 이를 악용하는 공격을 말합니다.'제로데이'라는 이름은 취약점이 공개된 후 해결되기까지 걸리는 시간을 의미하며,취약점이 발견되었지만 그에 대한 방어책이 마련되지 않은 상태에서바로 공격이 시작되는 것을 뜻합니다. 이러한 공격은 특히 위험한데, 시스템 관리자나 사용자들이 취약점에 대해 알기 전이기 때문에 방어할 방법이 거의 없기 때문입니다. 제로데이 공격은 주로 소프트웨어나 운영 체제에서 발생하는데, 공격자들은 취약점을 발견하고 이를 통해 악성코드를 심거나 권한을 탈취하여 시스템을 장악하려 합니다.대처 방법으로는 항상 최신 보안 패치를 유지하고, 침입 탐지 시스템(IDS) 및 .. 더보기 TIL.52 @DataJpaTest vs @Mock(@MockBean) @DataJpaTest와 @Mock(또는 @MockBean)은스프링 애플리케이션의 다양한 계층을 테스트하기 위해각기 다른 방식으로 사용됩니다.각각의 원리와 구체적인 사용 방법을 더 깊이 다뤄보겠습니다.1. @DataJpaTest @DataJpaTest는데이터베이스와 JPA(또는 다른 ORM)를 이용한 데이터 접근 로직을 테스트하기 위해 사용됩니다.스프링에서는 데이터 접근 레이어가 정상적으로 작동하는지 확인하기 위해 @DataJpaTest를 제공합니다.주로 Repository 인터페이스를 통해 수행하는 데이터베이스 CRUD 작업과쿼리 메서드의 동작을 검증하는 데 적합합니다.1) 주요 특징① 내장 데이터베이스 사용 @DataJpaTest는 기본적으로 내장된 H2 데이터베이스를 사용하여 테스트를 수행합니다.. 더보기 TIL.51 Docker 왜 쓸까? 1. 환경 일관성 제공 Docker는 애플리케이션 실행에 필요한라이브러리, 환경 설정, 시스템 패키지 등을 모두 포함한 컨테이너로애플리케이션을 실행합니다.이를 통해 "환경 차이로 인한 문제"를 해결합니다.일반적으로 개발, 테스트, 배포 환경이 다를 경우라이브러리 버전 차이, 설정 차이 등이 발생할 수 있는데,Docker 컨테이너에서는 이러한 요소들을 포함하여일관된 환경을 유지할 수 있습니다.Docker를 사용하면코드가 어느 환경에서든 동일하게 동작하도록 보장할 수 있어“개발에서는 잘 되는데, 운영에서는 안 되는” 문제를 크게 줄여줍니다. 2. 간편한 배포 및 확장성 Docker는 컨테이너를 이미지로 저장하고 관리합니다.이 이미지는 애플리케이션을 포함한 전체 시스템을 하나의 패키지로 만든 것으로,이를 사용.. 더보기 TIL.50 JDBC vs JPA JDBC와 JPA는 Java에서 데이터베이스와의 상호작용을 돕는 주요한 기술입니다.둘은 같은 목표(데이터베이스 연결)를 향하지만,방식과 접근법이 달라 사용 목적과 상황에 따라 선택됩니다.1. JDBC (Java Database Connectivity) JDBC는 Java에서 데이터베이스와 통신하는 가장 기본적이고 낮은 수준의 API입니다.SQL 쿼리를 사용해 데이터베이스와 상호작용하는 JDBC는복잡한 쿼리나 특정 데이터베이스 특성에 의존할 때 유리합니다.1) 주요 특징① 저수준 접근JDBC는 SQL 쿼리를 직접 작성하고 실행하는 저수준 API입니다.데이터베이스와 연결하고, 쿼리를 실행하며,결과를 가져오는 작업을 모두 개발자가 처리합니다.② SQL 중심의 데이터 처리JDBC를 통해 SQL을 직접 작성하여 .. 더보기 이전 1 2 3 4 ··· 8 다음