본문 바로가기

IT

로드 밸런서 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭클라이언트와 서버풀(Server Pool)사이에 위치Server Pool : 분산 네트워크를 구성하는 서버들의 그룹한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 서버 퍼포먼스를 유지로드밸런싱이 필요한 경우서비스 규모가 커지고, 사용하는 클라이언트 수가 늘어나면 자연스럽게 트래픽이 증가하기 때문에, 이 트래픽을 처리하기 위해서 로드밸런싱을 진행해야한다.트래픽 처리 유형Scale-up서버 자체의 성능을 확장하는 것CPU를 i3 → i7으로 업그레이드하는 것Scale-out비슷한 성능을 가진 서버의 개수을 늘려 증설하는 방법CPU가 i3인 컴퓨터를 여러 대 운영하는 것⇒ Scale-out 방식으로 서버를 증설하기로 결정했다면 .. 더보기
제네릭(Generic)이란? 제네릭이란(Generic)데이터형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법이다.객체 객체명 = new 객체();: 괄호 안에 들어가는 타입을 지정해준다우리가 어떤 자료구조를 만들어서 이용할때 String, Int타입등 다양하게 많은 타입을 지원하고 싶으면?타입에 맞춰 하나하나 선언하기엔 너무 비효율적이다. 그래서 우리가 제네릭이라는 것을 사용한다.이렇듯 제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 한마디로 특정(Specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입이라는 것이다.제네릭의 장점제네릭을 사용하면 잘못된 타입이 들어올 수 있는.. 더보기
데이터베이스 정규화(Normalization), 역정규화(DeNormalization) 데이터베이스 정규화(Normalization) 란?관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다.정규화의 기본 목표는 관련이 없는 함수 종속성은 별개의 릴레이션으로 표현하는 것이다.정규화된 결과를 정규형이라고 하며, 정규형은 기본 정규형 고급 정규형으로 나뉜다.기본 정규형 : 제1정규형, 제2정규형, 제3정규형, BCNF(보이스/코드 정규형)고급 정규형 : 제4정규형, 제5정규형정규화의 장점으로는 이상 현상의 발생 가능성을 줄이지만,단점으로는 연산 시간이 증가한다.제 1 정규형릴레이션에 속한 모든 속성의 도메인이 더 이상 분해되지 않는 원자값으로만 구성된 정규형이다.제2정규형릴레이션이 제1정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속.. 더보기
자바 Static이란? 정적 멤버란? 정적(Static)이란?정적(static)은 고정된이란 의미를 가지고 있다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 다른말로 정적필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버라고 한다. (클래스 멤버라고도 한다.) 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버이다. 그렇기에 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있다. 정적(Static) 멤버 생성new 키워드가 붙으면 메모리 힙 영역에 위치 (메모리에 올린다)하는 반면 Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 Static영역에 할당된.. 더보기
싱글톤 패턴(Singleton Pattern) 디자인 패턴중 하나인 싱글톤에 대해서 알아보자. 싱글톤(Singleton) 패턴의 정의는 단순하다. 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.즉 클래스를 통해 생성할 수 있는 객체는 Only One, 즉, 한 개만 되도록 만드는 것이 싱글톤이다.classSingleton {private Singleton() { }}publicclassSample {publicstaticvoidmain(String[] args) { Singleton singleton =newSingleton(); // 컴파일 오류가 발생한다. }}위와 같은 코드를 작성하면 컴파일 에러가 발생한다. 왜냐하면 Singleton 클래스의 생성자에 private 키워드로 다른 클래스에서 Singleton .. 더보기
JVM의 구조와 Java 실행 방식 JVM (Java Virtual Machine)자바 프로그램을 실행할 수 있는 가상머신자바와 OS사이에서 중재자 역할을 수행하고 자바가 운영체제에 구애 받지 않고 프로그램을 실행할 수 있도록 해준다GC(가비지 컬렉터)를 사용한 메모리 관리를 실행. 따라서 한정된 메모리를 사용해서 최고의 성능을 내기 위해서는 JVM의 이해가 필수적JVM 내부 구조와 역할Class Loader: 동적으로 클래스를 로딩해주는 역할을 수행 .class파일을 묶어서 JVM이 운영체제로부터 할당받은 메모리 영역 (Run Data Area)에 올리는 역할 바이트 코드(클래스파일)을 읽어 메모리에 올리는 역할Execution Engine (실행엔진): 클래스를 실행하는 역할을 수행. 클래스 로더가 JVM내의 Runtime Data A.. 더보기
OSI 7계층 (TCP/IP 4계층) 초기 여러 정보 통신 업체 장비들은 자신의 업체 장비들끼리만 연결이 되어 호환성이 없었다. OSI 7계층은 모든 시스템들의 상호 연결에 있어 문제없도록 국제 표준 기구 ISO가 발표한  네트워크 모델이다.TCP/IP 4계층은, TCP/IP 프로토콜 통신 과정에 초점을 맞추어, OSI 7계층을 좀 더 단순화 시킨 계층을 의미한다.OSI 7계층은 Physical, Data Link, Network, Transport, Session, Presentation, Application 각 계층으로 구분되어 있고 TCP/IP 4계층은 Session, Presentation, Application가 하나의 계층을 이루고 Network 계층이 Internet 계층으로, Physical, Data Link가 Networ.. 더보기
스프링(Spring) VS 스프링부트(SpringBoot) Spring framework를 통해서 개발자들의 겨울은 끝났다............?Spring이 봄(?)이라면 SpringBoot는 여름(?)이다. (봄보다 여름이 좋다는 가정)이전에 봄이 찾아오던 과정 => Spring 이전 Servlet과 비교하는 글 https://sh970901.tistory.com/111 스프링부트는 스프링 기반 애플리케이션을 단독적이고 상용화 수준으로 만들 수 있고 그냥 실행시키면 된다. 아주 간단하다는 걸 표현하는 것 같다.  스프링은 모든 dependency를 버전 정보까지 정확하게 작성하여야 원하는 기능을 사용할 수 있는데 스프링 부트는 버전 관리를 권장 버전으로 자동 설정된다.implementation 'org.springframework.boot:spring-boo.. 더보기

728x90