IT (88) 썸네일형 리스트형 코드로 보는 SOLID 원칙 1. 단일 책임 원칙 (Single Responsibility Principle - SRP)단일 책임 원칙(SRP, Single Responsibility Principle)은 "클래스는 단 하나의 책임만 가져야 하며, 변경의 이유가 하나여야 한다."는 원칙이다.즉, 하나의 클래스가 너무 많은 역할을 담당하면 유지보수가 어려워지고, 코드가 변경될 때 예기치 않은 문제가 발생할 가능성이 높아진다. SRP를 준수하면 각 클래스가 하나의 기능만 담당하여 코드의 가독성과 유지보수성이 향상된다. ❌ SRP를 위반한 코드 (잘못된 예시)🚨 잘못된 설계: Employee 클래스가 너무 많은 역할을 담당class Employee { private String name; private double salar.. 캐시 파헤치기 캐시(Cache)는 자주 사용하는 데이터를 빠르게 접근할 수 있도록 저장하는 임시 저장소이다.웹 애플리케이션에서는 데이터베이스, 서버, 브라우저 등 다양한 계층에서 캐시를 활용하여 성능을 향상시킨다.1) 캐시의 필요성속도 향상: 데이터를 매번 새로 요청하는 대신 캐시에서 가져와서 빠르게 처리서버 부하 감소: DB 또는 원격 서버의 요청을 줄여 시스템 부하를 낮춤네트워크 트래픽 절감: 동일한 요청을 반복적으로 서버에 보내지 않도록 함2) 캐시(Cache)의 종류클라이언트 측(Cache)브라우저 캐시(Browser Cache)웹 브라우저가 웹 페이지 리소스(HTML, CSS, JavaScript, 이미지)를 저장하여 다음 방문 시 빠르게 로드Cache-Control, ETag 등을 이용하여 캐시를 관리DNS.. 세션 파헤치기 1) 정의세션(Session)은 클라이언트와 서버 간의 상태를 유지하는 방식으로, 사용자가 웹사이트를 방문한 후 일정 시간 동안 유지되는 정보를 의미한다.웹은 본질적으로 무상태(Stateless) 프로토콜이기 때문에, 사용자의 로그인 상태나 특정 정보를 유지하려면 별도의 메커니즘이 필요하다.이를 위해 서버 측(Session)과 클라이언트 측(Cookie, Token 등)에서 정보를 저장하고 관리하는 방식이 사용된다.2) 세션(Session)의 동작 방식세션은 서버에서 관리되며, 클라이언트가 요청을 보낼 때 세션 ID를 함께 전송하여 해당 사용자의 정보를 유지하는 방식으로 동작한다.클라이언트가 서버에 요청사용자가 웹사이트에 접속하면 서버는 새로운 세션을 생성한다.서버는 세션 ID(Session ID)를 생.. 토큰 파헤치기 토큰(Token)은 사용자의 인증 및 권한을 확인하기 위해 발급되는 문자열로, 보안 및 인증 시스템에서 중요한 역할을 한다.특히 웹 애플리케이션에서 세션(Session)과 함께 사용자 인증을 관리하는 주요 방식이다.1) 토큰의 필요성웹 서비스에서 사용자의 인증을 유지하기 위한 전통적인 방식은 세션(Session) 이었지만, 다음과 같은 문제점이 있었다.✅ 서버 부하 증가세션은 서버가 직접 사용자 정보를 저장해야 하므로, 사용자가 많아질수록 서버 부하가 증가.여러 개의 서버를 사용할 경우, 세션을 공유해야 하는 문제가 발생.✅ 분산 환경에서의 문제여러 서버에서 서비스하는 경우, 특정 서버에 저장된 세션 정보를 다른 서버에서 사용할 수 없음.✅ 확장성 부족서버가 인증 정보를 관리해야 하므로, 확장성이 떨어짐.. 쿠키 파헤치기 1) 정의쿠키(Cookie)는 웹 서버가 사용자의 웹 브라우저에 저장하는 작은 데이터 조각으로, 주로 사용자 세션을 유지하거나 특정 사용자 정보를 저장하는 데 사용된다. 웹이 기본적으로 무상태(Stateless) 프로토콜이기 때문에, 쿠키는 사용자의 상태를 기억하는 역할을 한다.쿠키는 주로 다음과 같은 용도로 사용된다:사용자 인증(Authentication): 로그인 상태 유지세션 유지(Session Management): 장바구니 정보 저장, 사용자 설정 유지트래킹(Tracking): 방문 기록 및 사용자 행동 분석2) 쿠키의 동작 방식쿠키는 클라이언트(웹 브라우저)와 서버 간의 HTTP 요청 및 응답을 통해 교환되며, 동작 과정은 다음과 같다.서버가 쿠키 설정사용자가 웹사이트에 처음 방문하면, 서버는.. Java - equals, hashCode 1. 기초 지식1) 동일성이란?동일성(identity)은 객체가 동일한 인스턴스인지를 나타내는 개념이다. 즉, 두 참조 변수가 동일한 객체를 가리키는지를 확인하는 것이다. 이는 객체의 메모리 주소가 같은지를 비교하는 것이다.자바에서는 동일성을 확인하기 위해 == 연산자를 사용한다. 이 연산자는 비교하는 두 참조 변수가 같은 객체를 가리키는지를 확인한다. 두 참조 변수가 같은 객체를 가리키는 경우에만 true를 반환한다.예시 코드String str1 = "hello";String str2 = "hello";String str3 = new String("hello");System.out.println(str1 == str2); // trueSystem.out.println(str1 == str3); // f.. 로드 밸런싱 (Load Balancing) 1. 로드 밸런싱이란? 로드 밸런싱은 네트워크 및 서버 부하 분산을 위한 기술로, 여러 대상 서버 간에 트래픽을 균형있게 분배하여 가용성을 향상시키고 성능을 최적화한다. 로드 밸런서는 사용자 요청을 적절한 서버로 라우팅하고, 각 서버의 상태를 모니터링하여 장애 시에 트래픽을 다른 서버로 전환한다. 이는 웹 서비스, 애플리케이션 서버, 데이터베이스 서버 등 다양한 환경에서 활용된다. 2. 로드 밸런싱 방법 1) L4 Load Balancing L4 스위치는 전송 계층에서 동작하며, TCP 및 UDP 포트 수준에서 트래픽을 관리한다. L4 스위치는 IP 주소와 포트 번호를 기반으로 트래픽(서버부하)을 분산하고, 기본적인 로드 밸런싱 알고리즘(라운드 로빈, 가중치 등)을 제공한다. L4 스위치는 응용 계층의 .. 백준1157 1. 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 2. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 3. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 4. 예제 예제 입력1> Mississipi 예제 출력1> ? 예제 입력1> zZa 예제 출력1> Z 5. 학습 내용 1) HashMap 활용 2) HashMap.getOrDefault 메소드 활용 🔎 6. 작성 코드 import java.util.HashMap.. 이전 1 2 3 4 ··· 11 다음