전체 글 311

[CS] DELETE와 TRUNCATE의 차이점

⚽ 개요DELETE 와 TRUNCATE 의 차이가 여러 개 있겠지만 회사에서 우연히 인프라의 관점에서 DELETE 를 쳤을 때 용량 부분은 차이가 없어 TRUNCATE 와 차이점이 있다는 말씀을 듣고 궁금해서 좀 더 찾아보게 되었다. 1. DELETEDELETE는 테이블의 데이터를 행(Row) 단위로 삭제하는 명령어다.DELETE FROM USERWHERE USER_ID = 10;WHERE 조건을 사용할 수 있기 때문에 원하는 데이터만 선택적으로 삭제할 수 있다.테이블 전체 데이터를 삭제하는 것도 가능하다.DELETE FROM USER; 하지만 전체 데이터를 DELETE하더라도 테이블이 사용하던 저장 공간이 즉시 운영체제에 반환되는 것은 아니다.쉽게 말하면,데이터는 삭제했지만 테이블이 확보해 놓은 공간..

[축구모임 홈페이지개발] 414 Request-URI Too Large

⚽ 개요사이트 개발 초창기, 다양한 방식으로 프론트에서 서버로 데이터를 전달하는 방법을 배우고 이것저것 써본다는 생각을 했다.그 중 MVP 점수를 저장하는 기능은 GET 방식으로 쿼리스트링에 선수별 점수를 담아 URI 로 서버에 전달하는 방식을 선택했었다.그러다보니 선수가 늘어난 지금 한 번에 데이터를 서버로 전송할 때 414 Request-URI Too Large 에러 문제가 발생했다. ⚽ 원인 분석location.href = `/mvpboard?선수1=40&선수2=30&...&선수21=35`; GET 방식의 URL 은 길이 제한이 있는데 (보통 2,048자), 선수가 최근 21명으로 증가하면서 21명의 점수를 모두 담으이 제한을 초과하게 되어 414 에러가 발생한 것이다. ⚽ 해결 방법Frontend..

카테고리 없음 2026.02.18

[Spring] DeadLock (교착상태)

[Spring]🌱 배경더보기작업을 수행하는 배치 A와 B가 있다.해당 배치는 거래내역을 정산테이블에 적재하는 작업을 수행하는데, 매개변수에 따라서 분기 처리 되어있어서 두 Job 으로 나뉘어서 실행하도록 되어있었다. (모두 오전 3시 실행) 로직은 복잡하지 않다.둘 다 거래내역을 조회하는 기준이 다를뿐정산테이블에 적재할 때 한 번 이미 적재가 되어있는지 SELECT 문으로 조회하고,적재가 되어있다면 UPDATE,되어있지 않다면 INSERT. 정산테이블 구조PK - REC_SEQ, REC_DTIndex - ADJ_DT, UUID 특이사항INSERT 할 때 REC_SEQ 를 채번하기 위해서 SELECT 를 통해 MAX REC_SEQ 값을 가져와서 +1 하도록 되어있다.UPDATE 할 때 PK 와 Index..

[Spring] Auto Commit 과 문제 상황 테스트

🌱 개요Auto Commit 이 해제 되어있는 Monk 와 Jude 가 있고 각 각의 컴퓨터에서 작업을 하고 있다.이 상황에서 발생할 수 있는 문제에 의문이 들어 아래와 같이 테스트 해보았다.이 과정을 통해 Auto Commit 에 대해서 알아보고 발생할 수 있는 문제에 대해서 알아보고자 했다. 필자는 로컬 환경에서 상황을 부여하고 이를 테스트 하기 위해서 Monk, Jude 이름의 콘솔창을 열었다. 🧩 Auto Commit 인 경우 당연하게도 Auto Commit 인 경우에는 Monk 가 UPDATE 쿼리를 날리고 Jude 가 SELECT 로 해당 row 를 조회한다면, 수정된 값이 정상적으로 조회가 된다. 🧩 Auto Commit 해제 Monk 가 Auto Commit 을 해제한 후에 이메일..

[네트워크 관리사] <3. 네트워크 구축 및 관리> 개념 요약 정리

🌍 1. 네트워크 설계 및 구성 네트워크 설계 절차1. 요구사항 분석사용자 수 , 트래픽 양, 보안 수준, 확장성 고려 2. 계층적 설게 (Hierarchical Design)Access 계층 : 단말기 연결 (PC, 프린터 등)Distribution 계층 : VLAN, 라우팅, 정책 관리Core 계층 : 고속 백본, 주요 스위치 연결3. IP 주소 설계서브넷팅, 공인/사설 IP 구분향후 확장 고려한 대역 구성 4. 장비 선정 및 보안 설계성능, 가격, 호환성 검토VLAN, ACL, 방화벽, 암호화 설정5. 테스트 및 문서화Ping / Traceroute 로 연결 확인구성도, IP 리스트, 장비 정보 기록🌍 2. 네트워크 장비 설치 및 설정 🔹 주요 네트워크 장비 장비 주요 기능 허브(Hu..

[네트워크 관리사] <2. 네트워크 운용 기술> 개념 요약 정리

🌍 1. TCP / IP 개요구분내용TCP/IP란인터넷 표준 통신 규약(Protocol Suite), OSI 7계층을 4계층으로 단순화TCP/IP 계층응용층 / 전송층 / 인터넷층 / 네트워크 접근층주요 프로토콜HTTP, FTP, TCP, UDP, IP, ICMP, ARP 등 특징개방형, 표준화, 신뢰성, 확장성TCP → 신뢰성 있는 연결형 / UDP → 비연결형 빠른 전송🌍 2. IP 주소 체계 및 서브넷구분설명IP주소 구조네트워크부 + 호스트부 (예: 192.168.0.1)클래스 구분A: 255.0.0.0 / B: 255.255.0.0 / C: 255.255.255.0서브넷마스크네트워크와 호스트 구분용 (1은 네트워크, 0은 호스트)CIDR비클래스 주소 표기법 → 예: /24 = 255.255.2..

[네트워크 관리사] <1. 네트워크 일반> 개념 요약 정리

🌍 1. 네트워크의 기본 개념네트워크 : 두 대 이상의 장치가 데이터를 주고받는 연결 구조구성요소서버 : 서비스 제공클라이언트 : 서비스 요청매체 : 케이블, 전파 등 통신 경로프로토콜 : 통신 규칙 (TCP/IP, HTTP 등)네트워크의 종류LAN : 근거리, 빠름 (회사, 학교)MAN : 도시 단위WAN : 국가, 대륙 단위 (인터넷) 🌍 2. OSI 7계층( 물데네전세표응 )계층이름역할대표 프로토콜 / 장비7응용 (Application)사용자 서비스 제공HTTP, FTP, DNS6표현 (Presentation)데이터 변환, 압축, 암호화JPEG, SSL5세션 (Session)연결 관리 (시작·유지·종료)NetBIOS4전송 (Transport)데이터 신뢰성 보장TCP, UDP3네트워크 (Netwo..

[싹틔움] 쿠폰 대량 생성 + 진행바 구현을 통해 "요청 쓰레드"와 "작업 쓰레드" 분리하기

💡 개요2025.09.13 - [컴퓨터 프로그래밍/Spring] - [Spring] Thread 에 대해서 알아보자 [Spring] Thread 에 대해서 알아보자💡 개요회사에서 개발을 하던 중 쓰레드에 대해서 궁금해졌다.기존에 회원가입 시 이메일 비동기 처리를 진행하면서 기본, 최대 쓰레드 수를 직접 설정해보면서 겉핥기를 한 경험은 있지만 확hanstory33.tistory.com이전에 Thread 에 대해 알아보았는데 직접 눈으로 쓰레드가 분리되어서 동작하는 것을 보고 싶었다.기존의 싹틔움 프로젝트에 쿠폰 생성 (300개) api 가 있었는데, 서비스 규모가 굉장히 커져 엄청난 수의 쿠폰 생성을 해야하는 상황이 왔다는 가정하에,300개 쿠폰 생성을 하나의 CHUNK 단위로 커밋해서 5만개, 10만..

Project/싹틔움 2025.09.14

[Spring] Thread 에 대해서 알아보자

💡 개요회사에서 개발을 하던 중 쓰레드에 대해서 궁금해졌다.기존에 회원가입 시 이메일 비동기 처리를 진행하면서 기본, 최대 쓰레드 수를 직접 설정해보면서 겉핥기를 한 경험은 있지만 확실하게 이번 기회에 쓰레드에 대해서 더 알고자 했다. 💡 프로세스와 쓰레드1. 프로세스- 실행 중인 프로그램을 의미한다. → 하나의 스프링 서버는 하나의 프로세스이다.- 각 프로세스는 독립적인 메모리 공간을 가진다. 1. 쓰레드- 프로세스 안에서 실행되는 작업(흐름)의 최소 단위.- 하나의 프로세스에는 기본적으로 하나의 메인 쓰레드가 존재한다.- 개발자가 원하면 여러 개의 쓰레드를 만들고 설정해 동시에 여러 일을 처리할 수 있다. 즉, 프로세스는 하나의 회사이고 쓰레드는 그 회사에서 일하는 직원이다. 💡 쓰레드의 특징..

[PiggyAI] 추천 카페 List 캐싱 처리를 통한 성능 최적화 및 비용 개선

🐷 문제 상황사용자가 지역을 검색했을 때 현재 로직은 Kakao 를 통해 해당 지역의 카페 리스트를 불러오고 이를 기반으로 OpenAI 가 추천 카페 리스트를 반환한다. 하지만 매번 Kakao api, OpenAI api 호출을 하면 비용적인 문제와 응답속도 면에서 아쉬움이 있었다.사용자가 매번 검색을 할 때마다 추천 리스트가 바뀌는 것 역시 사용자 입장에서 이 리스트가 진짜로 추천이 된 리스트일까? 하는 의문이 들 수 있다고도 판단했고, 7일의 TTL 설정이라면 주변 카페 최신화에도 문제가 없을 것이라 생각해 이를 구현해보았다. 동일한 키워드로 여러 사용자가 검색할 때도 매번 Kakao, OpenAI 호출OpenAI 응답 시간: 평균 2.5~5초하루 500~1000건 이상의 검색 발생 → 비용 증가,..

Project/Piggy AI 2025.05.23