본문 바로가기

전체 글

(47)
정규화(Normalization) 정규화 란 정규화는 데이터베이스 설계 과정에서 데이터를 효율적으로 저장하고 중복을 최소화하며 데이터 일관성과 무결성을 유지하기 위한 기법을 의미한다. 정규화의 주요 목적은 다음과 같다.중복 데이터 제거- 동일한 데이터가 여러 위치에 저장되지 않도록 데이터 구조를 설계한다.데이터 무결성 보장- 데이터의 불일치나 오류를 방지하기 위해 종속성 있는 데이터를 올바르게 분리한다.이상 현상 해결- 이상 현상을 최소화하여 데이터베이스 관리가 용이하도록 한다.이상(Abnomal) 현상의 개념 및 종류 데이터베이스 설계에서 이상 현상은 데이터 삽입, 삭제, 또는 업데이트 시 발생하는 비정상적인 동작이나 문제를 의미한다. 이러한 이상 현상은 테이블 설계가 비효율적이거나 정규화가 제대로 이루어지지 않았을 때 발생할 수 있다..
메시지 지향 미들웨어, 메시지 브로커, 메시지 큐 메시지 지향 미들웨어(Message-Oriented Middleware – MOM) MOM이란 응용 소프트웨어 간에 비동기적 데이터 통신을 위한 소프트웨어를 의미한다. 보다 쉽게 말하자면 MOM이란 독립된 서비스들이 서로 데이터를 주고받을 수 있도록 하는 미들웨어를 의미한다.미들웨어란 서로 다른 어플리케이션들을 연결하여 데이터 교환을 가능하게 해주는 소프트웨어이다. 메세지 지향 시스템은 메세지 API를 통해 분산된 어플리케이션간의 중개 역할을 수행하여 데이터가 안전하고 신뢰성 있게 교환될 수 있도록 지원한다. MOM은 메세지를 통해 여러 분산된 시스템간의 Connector 역할을 하며 시스템 간의 결합성을 낮추고 실시간으로 비동기식 데이터 교환을 가능하게 한다.    주문, 결제, 배송, 재고 관리 등 ..
Scope와 Closure 이번 포스트를 보기 앞서 이전 포스트를 보고 오시기 바랍니다. https://jaystorage.tistory.com/46 Execution Context(실행 컨텍스트)Lexical Environment(어휘적 환경) 란코드가 어디서 실행되며 주변에 어떤 코드가 있는지 대체적인 정보를 담고 있는 환경함수 본인 내부의 식별자, 식별자에 바인딩 된 값 등을 기록하고 있는 하나의jaystorage.tistory.com  Scope 란 스코프란 변수 이름, 함수 이름, 클래스 이름과 같은 식별자가 본인이 선언된 위치에 따라 다른 코드에서 자신이 참조될 수 있을지 없을지 결정되는 것을 의미한다. 보다 간단하게 설명하면 스코프는 식별자가 유효한 범위라고 할 수 있다. 스코프는 유효범위에 따라 다음과 같이 2가지로..
Execution Context(실행 컨텍스트) Lexical Environment(어휘적 환경) 란코드가 어디서 실행되며 주변에 어떤 코드가 있는지 대체적인 정보를 담고 있는 환경함수 본인 내부의 식별자, 식별자에 바인딩 된 값 등을 기록하고 있는 하나의 자료구조 이러한 Lexical Environment가 모여서 코드의 문맥을 구성한다.  Lexical Environment의 구성 요소Environment Record (환경 레코드)- 변수와 함수 선언을 저장 - ex) 함수 내부의 변수와 함수 선언이 저장Outer Environment Reference (외부 환경 참조)- 상위 lexical environment 가리킴- 이를 통해 함수가 중첩되어 있을 때 내부 함수가 외부 함수의 변수와 함수에 접근 가능  Execution Context(실행..
Spring IoC Container(Spring Container) Spring IoC Container(Spring Container) 란 Spring IoC Container(혹은 Spring Container)란 객체의 생명주기를 관리하며 이러한 객체들에게 추가적인 기능을 제공하는 스프링의 핵심 컴포넌트이다. 즉, 스프링의 bean을 관리(bean 생성 및 생명주기 관리, DI, AOP 지원 등)하는 컨테이너라고 보면 된다. 이러한 스프링 컨테이너는 XML 파일 또는 어노테이션 기반의 자바 설정 클래스로 구현할 수 있다. 예전에는 xml 파일을 통해 직접적으로 스프링 컨테이너를 설정하는 것이 일반적이었지만, Spring Boot가 등장하고 설정이 자동화되어 대부분 사용하지 않게 되었다. Spring IoC Container(Spring Container) 구성  스..
Bean 스코프 Bean Scope 란 Bean은 스프링 컨테이너에서 관리하는 객체를 의미하며 Bean Scope는 이러한 Bean이 존재할 수 있는 범위를 뜻한다. Bean의 기본 스코프는 singleton이라 어플리케이션이 구동되는 동안 하나의 인스턴스만 생성되어 사용된다. 많은 Spring 개발자들이 Bean의 스코프를 기본값인 singleton으로만 사용하기 때문에 크게 신경 쓰지 않는 경우가 많다. 하지만 Bean 스코프를 잘 활용하면 보다 다양한 요구사항에 맞춰 어플리케이션을 효율적으로 개발할 수 있다. 참고로 Bean scope는 다음과 같이 사용할 수 있다.@Component@Scope(value = "prototype")public class ProtoType {} Bean Scope 종류 Bean 스코..
Singleton 패턴 Singleton 패턴이란 싱글턴 패턴은 객체의 인스턴스가 오로지 한 개만 생성되도록 설계하는 디자인 패턴을 의미한다. 이는 전역적으로 접근할 수 있는 하나의 객체를 제공하는데 유용하다.  이러한 싱글턴 패턴은 다음과 같은 특징을 갖는다. 1. 유일성싱글턴 클래스는 단 하나의 인스턴스만 생성함 여러 번 인스턴스화를 시도해도 항상 같은 인스턴스를 반환함 2. 전역 접근싱글턴 객체는 전역적으로 접근할 수 있는 방법을 제공한다. 이를 통해 어플리케이션의 다른 부분에서 언제든지 동일한 인스턴스에 접근할 수 있다.  Singleton 패턴 구현 방법 자바에서 싱글턴 패턴을 구현하는 방법은 여러가지가 있다. 하지만 여기에서는 권장되는 2가지 방법만 제시할 것이다. (나머지 방법들은 단점이 뚜렷하기 때문) 1. Bi..
TLS(Transport Layer Security) TLS(Transport Layer Security) 란 TLS(Transport Layer Security)는 온라인 네트워크에서 데이터를 안전하게 주고받기 위한 암호화 프로토콜이다. 통신 데이터를 TLS 프로토콜을 통해 암호화하면 누군가 데이터를 가로채도 복호화 할 수 없기 때문에 악성 공격에서 데이터를 보호할 수 있다. HTTPS는 HTTP 프로토콜 상위에서 TLS 암호화를 구현한 것으로 HTTP 뒤에 붙은 S는 보안(Security)를 뜻한다.  TLS와 SSL의 차이점 SSL(Secure Sockets Layer)은 넷스케이프사에서 1995년에 개발한 HTTP 암호화 프로토콜이다. TLS가 나오기 전까지 널리 쓰였으나 여러 보안 취약점이 발견되며 사용이 중단되어 현재는 TLS로 대체되었다. TL..