TIL

    [TIL] 데이터베이스 정규화

    정규화(Normalization) 한 릴레이션(Relation)에 여러 엔티티의 속성을 혼합하면 정보가 중복 저장되며 저장 공간을 낭비하게 된다.또한 중복된 정보로 인해 '이상 현상'이 발생하게 된다. 이러한 문제를 해결하기 위해 정규화 과정을 거친다. 이상현상테이블을 설계할 때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류삽입이상(Insersion Anomaly) : 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상삭제 이상(Deletion Anomaly) : 어떤 정보를 삭제하면, 의도하지 않은 다른 정보까지 삭제되어버리는 현상갱신 이상(Update Anomaly) : 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상 함수 종..

    [TIL] STOMP 개념

    [TIL] STOMP 개념

    Spring Boot 에서 채팅기능을 구현하는 방법은 여러 가지가 있다. 그중 가장 기본적인 방법은 'websocket' 을 이용하여, 직접 서버에 접속한 클라이언트들의 세션을 관리하면서, 메시지를 각 세션들로 전송해주는 것이다. 이때, 개발자는 전달할 메시지의 포맷을 직접 정의하고, 해당 메시지가 어떤 요청인지, 어떻게 처리해줘야 하는지 모두 구현해야 한다.  이번 포스팅에서 다룰 STOMP 는 위의 작업을 간소화하여, 보다 편리하게 메시지를 전송할 수 있도록 도와주는 프로토콜이다.  ❓STOMP (Simple Text Oriented Message Protocol) 란 STOMP는 웹소켓 위에서 동작하는 텍스트 기반 메세징 프로토콜로써, 클라이언트와 서버가 전송할 메세지의 유형, 형식, 내용들을 정의..

    [TIL] Interrupt 란?

    인터럽트란? (Interrupt) CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것을 말한다.   CPU가 어떤 프로그램을 순차적으로 수행하는 중에 외부로부터 인터럽트 요구가 들어오게 되면, CPU는 원래 프로그램의 수행을 중단하고, 인터럽트를 먼저 처리해준다. 인터럽트 처리가 끝나면 원래의 프로그램으로 복귀한다. 인터럽트가 필요한 이유? 하나의 CPU에서는 매 순간 하나의 프로그램만 실행시킬 수 있다. 그렇기 때문에 현재 CPU를 할당받아 실행되고 있는 프로그램이 I/O 처리와 같이 수행하는데 오래 걸리는 작업을 할 때에도 CPU를 점유하고 있다면, CPU라는 자원을 낭비하게 된다. 따라서 운영체제는 ..

    [TIL] SSL/TLS

    SSL / TLSSSL 및 TLS 는 네트워크를 통해 작동하는 서버, 시스템 및 응용프로그램간에 인증 및 데이터 암호화를 제공하는 암호화 프로토콜이다. TLS 는 SSL3.0 을 기반으로 하는 보다 안전한, SSL의 업데이트된 버전이며, SSL 자체는 현재 사용하지 않는다. SSL에서 TLS로 명칭이 변경되었지만, TLS 및 SSL는 모두 'SSL'이라고 불리기도 한다. 암호화 방식대칭키 암호화대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다.공개키 암호화공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다른 암호화 방식을 말한다.개인 키 : 이 키는 비공개로 유지되며 정보를 암호화 할 수 있고, 공개 키로 암호화된 정보를 복호화할 수 있다.공개 키 : 사람들에게 공개된 키이며..

    [TIL] CORS 문제와 해결법

    CORS(Cross-origin Resource Sharing) 웹 생태계에는 다른 출처로의 리소스 요청을 제한하는 것과 관련된 두 가지 정책이 존재한다. 한 가지는 CORS 이고, 다른 한 가지는 SOP(Same-Origin Policy)이다. 그중 CORS 가 무엇이며, 이것이 생긴 이유와 해결책 등 전반적으로 CORS에 관한 부분을 정리한다. 출처(Origin)출처는 Protocol 과 Host, Port 의 조합을 말한다.[출처] https://evan-moon.github.io/2020/05/21/about-corsProtocol, Host, Port 의 세 가지가 모두 같아야 같은 출처 이며, 세 가지 중 하나라도 다르다면 다른 출처 이다. CORS 란?CORS (Cross-Origin Res..

    [TIL] Spring의 의존성 주입 방법

    Spring 프레임워크의 핵심 기술 중 하나는 DI(Dependency Injection, 의존성 주입)이다. 이번 포스팅에서는 Spring이 제공하는 3가지의 의존성 주입 방법들을 알아보고, 가장 권장되는 방법이 무엇인지 정리하고자 한다. 📌  의존성 주입(DI) 이란? 의존성 주입은 객체 지향 프로그래밍에서 의존하는 객체를 직접 생성하거나 관리하지 않고 외부에서 주입받는 것을 의미한다. 다시 말해, 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 객체를 받아 사용하는 것이다. 의존성 주입을 할 경우, 객체간의 결합도를 줄이고 코드의 재활용성을 높일 수 있다는 장점이 있다. 📌 의존성 주입의 3가지 방법Spring은 @Autowired 어노테이션을 이용해 다음의 3 가지 의존성 방법을 제공한다. ..

    [Linux] Nginx와 Wordpress로 WAS 구성

    📌Nginx 란?정적인 리소스를 클라이언트에게 보내주는 웹서버이다. 📌Wordpress 란? 웹 사이트를 쉽게 만들어줄 수 있는 php & mysql 기반 프레임워크이다. 📌 Php-fpm 이란?  php 파일을 실행해주는 프로그램이다. Nginx & Wordpress 구성을 웹 애플리케이션으로 동작할 수 있도록 하는 실질적인 역할을 한다.  이번 실습을 통해, Nginx와 Wordpress로 웹 애플리케이션 서버(WAS) 구성을 진행해보겠다.✅ 실습 환경Windows 11VMware CentOS 81) 웹 서버 준비# nginx 설치yum install -y nginx  2) php 설치dnf install -y https://dl.fedoraproject.org/pub/epel/epel-rele..