본문 바로가기
반응형

분류 전체보기404

[네트워크] 세션 클러스터링 | 이중화 시 서버들이 사용자를 기억하는 방법 🌟 세션 클러스터링 (Session Clustering)로그인한 사용자 정보(세션)를 여러 서버가 같이 기억하는 방법왜 여러 서버가 같이 기억해야 되냐면 → 서버가 여러 대니까. → 어떤 서버에 연결돼도 "나 로그인했어" 상태가 유지돼야 하니까 🛠️ 방법은 두 가지1. 톰캣 설정으로 세션 클러스터링2. 토큰 기반 세션 유지 (JWT 같은 거) 1. 톰캣 설정으로 세션 클러스터링서버끼리 세션 내용을 실시간으로 동기화하는 방식 톰캣 같은 웹 서버(WAS)들이 서로 세션 정보를 주고받는다.그래서 서버 A에서 로그인했어도, 서버 B로 요청이 가도 로그인 상태를 알게된다.이걸 하려면 톰캣에 Cluster 설정을 해야 한다. (ex: server.xml 파일에 태그 추가) 장점기존 세션 로직 거의 안 .. 2025. 5. 3.
[네트워크] 이중화(HA) 및 세션 관리 | 끊기지 않고 돌아가는 프로그램을 위한 기술 🔥 이중화(HA, High Availability)"서버가 죽어도 서비스는 끊기지 않게 만드는 것" 우리가 서비스하는 사이트가 있는데, 서버가 하나밖에 없으면?서버 고장나면 사이트도 그냥 🧨펑🧨 망가짐. 그래서 서버를 두 개 이상 띄워놓고:하나가 죽으면 다른 서버가 바로 대신 일하는 구조를 만들어 놓는 것.고객은 아무것도 모르게 계속 서비스를 쓸 수 있어야 한다. 🛠️ 기술적으로는 이렇게로드밸런서 (트래픽 분배기) 앞에 두고서버(A) 서버(B) 서버(C) 여러 대를 동시에 돌림.A 서버가 죽으면 → B나 C가 대신 응답함.그리고 세션이나 데이터도 서버끼리 공유하거나 복제해서,끊기지 않고 이어지게 만들어야 한다. 🌟 이중화 안 하면서버 한 대가 죽으면로그인했던 사람 → 튕김결제 중.. 2025. 5. 2.
[개발자일기] 결혼을 앞둔 3년차 기계공학 출신 백앤드 개발자의 일기 나는 철든 30대 여야 할까 아니면 하고싶은걸 하는 순수한 아이여야 할까 고등학생 때 나는 재활학과와 기계공학과에서 기계공학과를 선택했고대학생 때 해외여행과 인턴 중 인턴생활을 선택했고사회초년생의 나는 기계 공기업과 개발자 사이에서 개발자를 선택했고백앤드와 프론트앤드 중 백앤드를 선택했다. 나는 또 선택을 해야된다.내 커리어와 내 가정 중 나는 어떤걸 선택해야 할까 처음 기계 데이터 분야를 벗어나서 웹 개발을 배웠을 때는 27살 나는 뭐든지 할 수 있을 거라고 생각했다.(백앤드 별거 아니네!!!)근데 api 만드는 작업에 질려버렸다.api 하나 만들어야해~ 하면은 controller 부터 dto dao repository 다 복붙해서 조금만 로직을 바꾸면 되니까내가 개발을 하는건지 복붙을 하는건지.... 2025. 5. 1.
[네트워크] 시스템 부하와 세션, 쿼리와의 관계 | 시스템 속도가 느린 이유는 무엇일까 전체 시스템 부하는 세션 + 쿼리 관리 이슈와 연결된다.시스템이 느려지거나 먹통되는 이유는 보통, 세션이 쌓이거나 쿼리가 느리게 동작하기 때문이다.→ 세션이 메모리를 먹고, 쿼리가 CPU를 잠근다. 📌 세션 관리가 시스템 부하에 미치는 영향 세션 = 사용자 수 만큼 생기는 저장소사용자 1명 접속 → 서버 메모리에 세션 1개사용자 1000명 접속 → 세션 1000개사용자 10만 명 접속 → 서버 메모리에 10만 개 쌓임 😵 문제는세션을 계속 들고 있으니까, 메모리 누수처럼 점점 RAM을 먹는다.심하면 서버가 OOM (Out Of Memory) 으로 죽어버린다.HttpSession session = request.getSession();// 여기에 무거운 객체 넣으면 메모리 펑session.s.. 2025. 4. 30.
[부동산시장론] 여과과정(하향여과, 상향여과)과 장단기별 시장변화 | 기본개념 정리 (3) 📌 주택시장의 여과과정 (Filtering Process) ✅ "주택이 시간이 지나면서 다양한 계층이 거주하게 되는 과정!"✅ "새로운 주택이 공급되거나 기존 주택이 낡아지면서, 고소득층과 저소득층이 이동하는 현상!"💡 즉, 부동산 시장에서는 시간이 지나면서 '고급 주택 → 중간 주택 → 저렴한 주택'으로 변화하거나, 반대로 '낡은 주택 → 리모델링 → 고급 주택'으로 변화할 수도 있음! 🔹 1. 하향여과 (Downward Filtering)  "신축 주택 → 낡은 주택 → 저소득층으로 이동!" ✅ "새 아파트가 지어지면서, 기존 주택이 점점 저소득층이 사는 주택으로 변하는 과정!"✅ "즉, 시간이 지나면서 고급 주택이 낡아지고, 가격이 하락하여 저소득층이 거주하게 되는 현상!"📌 하향여과 과정✔.. 2025. 3. 7.
[부동산시장론] 주택시장 특징과 주택유량vs주택저량, 주택소요vs주택수요 정리 | 기본개념 정리 (2) 💡 쉽게 말하면,📌 주택시장 특징✅ 이질성이 크다 🏠• 같은 아파트라도 1층과 12층은 다르게 평가 (조망권, 채광, 소음 차이 등)• 그래서 주택은 완전히 똑같은 상품이 존재하기 어려운 시장 ✅ 복합적인 서비스 제공 🏗• 주택은 단순히 건물만 제공하는 게 아니라, 주거 환경, 관리 서비스, 편의시설까지 포함된 상품 ✅ 공공성이 높다 🏛• 주택은 모든 사람이 필수로 필요한 재화라서, 정부가 시장에 개입하는 경우가 많음 • 예를 들어, 입지 선정(어디에 지을지), 분양 규제, 전월세 정책 등에서 정부가 개입해 시장을 조정함 • 그래서 주택을 너무 상업적으로 마케팅하거나, 전월세 광고를 과하게 하는 것도 제한될 수 있음  ✅ 지역적 특성이 크다 📍• 주택시장은 그 지역의 수요에 영향을 많이 받음... 2025. 3. 6.
[부동산시장론] 부동산시장의 뜻과 유형, 특성별 정리 | 기본개념 정리 (1) 📌 부동산시장✅ "부동산이 사고팔리는 곳"✅ "비슷한 종류의 부동산들이 비슷한 가격으로 거래되는 구역"✅ "사람들이 어떻게 경제활동을 할지, 그리고 얼마까지 지불할 수 있는지에 따라 땅을 어떻게 쓸지 결정하는 시장" ⭐부동산시장은 사람들이 부동산을 사고팔고, 그 가격이 형성되는 곳이면서, ⭐ 어떤 사람들이 어떤 가격으로 땅을 사용할지 결정하는 곳      📌 부동산시장 유형  ✅ 완전경쟁시장 : 일반재화시장 ✅ 불완전경쟁시장 : 부동산시장 (완전경쟁시장을 전제로 시장분석 가능) 완전경쟁시장 : 문구점불완전경쟁시장 : 부동산참여자수: 판매자, 구매자 ↑- 다수가 공구 가능동종동질 - (지우개는 어딜가도 지우개)진입장벽 낮음, 이탈도 쉬움정보공개: 완전공개 - 고급정보없음 => +a 없음소액자금으로 빈번.. 2025. 3. 5.
[부동산경제론] 수요량의 변화, 수요의 변화에 따른 수요곡선 | 기본개념 정리 (2) 📌 수요량의 변화 vs. 수요의 변화✅ "수요량의 변화 = 가격이 변해서 사고 싶은 양이 달라지는 것!"✅ "수요의 변화 = 가격이 아닌 다른 요인(소득, 금리 등)이 변해서 전체적인 수요가 달라지는 것!"💡 즉, '수요량의 변화'는 가격에 의해 생기고, '수요의 변화'는 가격 외적인 요인에 의해 발생하는 차이!   🔹 1. 수요량의 변화 (Change in Quantity Demanded)= "가격 변화로 인해 수요량이 변하는 것!"❗2억 떨어졌으니까 지금 사볼까?❗2억이나 올랐는데 존버해야겠다... ✅ "부동산 가격이 변하면, 사고 싶은 양(수요량)이 달라지는 것!"✅ "그래프에서 수요곡선 위에서 움직이는 것!"📌 예시 1: 아파트 가격 변화에 따른 수요량 변화✔ 서울 아파트 가격이 10억 →.. 2025. 3. 4.
[부동산경제론] 부동산의 수요와 수요곡선 | 기본개념 정리 (1) 🔹 부동산 시장의 수요✅ "부동산 시장에서 사람들이 얼마나 집을 사고 싶어하는지를 나타내는 개념!" ✅ "수요와 수요량은 다르고, 수요곡선과 수요법칙은 가격과 수요의 관계를 설명하는 것!" 💡 즉, 부동산의 가격이 오르면 수요가 줄고, 가격이 내리면 수요가 늘어난다는 기본 원리를 이해하는 게 중요  🔹 1. 수요 (Demand) vs. 수요량 (Quantity Demanded)1️⃣ 수요(Demand) = "부동산을 사고 싶은 전체적인 욕구!" • 사람들이 집을 사거나 빌리려는 "전체적인 성향"을 의미! • 가격뿐만 아니라, 소득, 금리, 정부 정책 등 다양한 요인에 영향을 받음! 2️⃣ 수요량(Quantity Demanded) = "특정 가격에서 실제로 원하는 양!" • 특정 가격에서 사람들이 실.. 2025. 3. 3.
[JVM] JVM(자바) 의 메모리 구조 - 스택과 힙 영역, 스택 프레임이 쌓이는 과정과 힙 영역에 객체가 생기는 과정 if (list.get(i).getDataYN() == "Y") { dataSize++;} 만약 이 코드를 보고 이상한걸 못느낀다면…JVM 스택영역, 힙 영역에 어떤 데이터가 들어가는지 공부해야 한다.  JVM 의 실행자바 프로그램이 실행되면 컴파일된 .class 를 실행엔진이 메서드영역에서 읽으면서-> 스택영역에 순서대로 쌓으면서(스택 프레임 생성) 실행 + 실행되는동안 객체/배열이 있으면 힙에 생성  + 실행되는동안 가비지컬렉션이 힙 관리-> 실행이 다 되면 순서대로 스택에서 나감를 한다. 선요약 JVM 의 스택영역과 힙 영역public class Sample { // 인스턴스 필드 int x = 10; String name1 = "홍길동"; public void m.. 2024. 12. 24.
[JVM] JVM 의 메모리구조, 메모리 영역 별 저장되는 데이터 선요약 메서드 영역(Method Area): 클래스 로더에 의해 로드된 클래스의 메타데이터, 상수 풀, 정적 변수, 메서드 코드 등이 저장스택 영역(Stack Area):메서드 호출 시 생성되는 프레임이 저장각 스레드마다 스택이 하나씩 있고, 메인 스레드에 main()-프로그램 시작점 이 있음힙 영역(Heap Area): 객체와 배열, 인스턴스 변수가 동적으로 저장모든 객체는 힙에 생성되며, 전역 접근 가능  메모리 구조메서드영역, 스택영역, 힙영역으로 구성되어있다.일명 메스힙 자바 프로그램 실행 시의 대충 흐름은..자바실행 -> .java가 .class 로 컴파일 -> (클래스가 처음으로 참조될 때) 클래스로더가 .class 읽으면서 메서드영역에 클래스메타데이터, 상수풀, 정적변수 저장 + 정적변수 초.. 2024. 12. 23.
Spring Boot 의 요청-응답 순서 정리 | MVC 와 차이점 | DispatcherServlet 자동/수동 구성 SpringBoot 도 SpringMVC 의 요청 - 응답과 똑같이 처리가 되는데요청 처리 부분에서 차이점이 존재한다.SpringBoot 와 SpringMVC 의 큰 차이점 중 하나는 '설정파일 구성 여부' 이다.SpringMVC 는 개발자가 수동으로 구성하는 반면, SpringBoot 는 자동으로 구성된다.요청-응답 과정도 마찬가지… 차이점순서SpringMVCSpringBoot클라이언트가 요청을 보냄--DispatcherServlet에 요청이 도착xml 을 만들어서 요청 처리방법 정의web.xml 파일에 DispatcherServlet을 정의하고, 별도의 XML 파일(예: dispatcher-servlet.xml)이나 Java 설정 클래스를 통해 요청 처리 방법을 구성자동으로 (DispatcherSer.. 2024. 12. 21.
Spring MVC 의 요청-응답 순서 정리 | DispatcherServlet 과 컨트롤러 메소드의 선/후처리 순서클라이언트가 요청을 보냄DispatcherServlet에 요청이 도착HandlerMapping을 사용하여 적절한 핸들러(컨트롤러)를 찾음HandlerInterceptor 인터페이스의 preHandle 메소드 를 호출해서 선처리HandlerAdapter를 사용하여 핸들러 실행 준비HandlerMethodArgumentResolver를 사용하여 컨트롤러 메소드의 파라미터를 해석파라미터 전처리가 필요한 경우, 관련 메소드가 호출됨실제 컨트롤러 메소드 실행컨트롤러가 반환된 후 뷰 이름에 따라 뷰가 렌더링DispatcherServlet이 HandlerInterceptor 인터페이스의 postHandle 메소드를 호출해서 후처리응답 종료 (클라이언트에게 전송) 후 afterCompletion 메소드 호출 용어정.. 2024. 12. 20.
[JVM] JVM 동작 과정 - | 클래스로더, 실행엔진, 가비지 컬렉션 JVM 동작 선요약1. 컴파일된 자바를 클래스 로더를 통해 읽으면, 클래스 로더가 바이트코드를 검증하고 메모리에 올림 2. 클래스 로더가 할일을 끝낸다면 정적변수들이 기본값으로 설정된 후에 정적 초기화 블록이 실행됨 (초기화) 3. 그 후, 초기화가 끝나면 JVM 실행엔진이 작동 : 메모리에 올라간 바이트코드를 기계어로 번역해서 실행 4. 실행되는 동안 가비지 컬렉션이 힙메모리를 돌면서 사용되지 않는 객체들을 정리 클래스로더컴파일된 클래스 파일들을 JVM 안에 있는 클래스 로더가 읽음. 클래스로더는 컴파일된 바이트코드들을 동적로딩 한 다음에  메서드 영역에 넣음 => 클래스 로더는 클래스 파일을 로드하고 메모리에 올리는 일을 하는애 클래스로더 - 동적로딩클래스 파일을 로드한다 = 동적로딩 동적로딩은 프로.. 2024. 12. 19.
유압기기 핵심공식 필기노트 공유 | 펌프, 제어벨브, 액추에이터, 유압회로 용어 등 기계기사, 공기업 합격했던 닝겐의 귀한 필기노트입니다기계 블로그 접는 기념으로 유압기기 필기 노트 뿌립니다...하루에 하나씩 공개중ㅋㅋ  퍼갈때 출처 꼭 남겨주시고...무단으로 가져가면 저작권 신고할거에욤뀨 2024. 12. 2.
반응형