분류 전체보기
-
스프링 디스패처 서블릿(DispatcherServlet)의 개념과 동작흐름스프링 2022. 7. 5. 23:55
The DispatcherServlet. 프론트 컨트롤러. 프론트 컨트롤러 패턴은 중앙집중형 컨트롤러를 모든 컨트롤러 제일 앞에 둬서 서버로 들어오는 모든 요청을 먼저 받아서 처리하게 만듭니다. 프론트 컨트롤러는 클라이언트가 보낸 요청을 받아서 공통적인 작업을 먼저 수행한 후에 적절한 세부 컨트롤러로 작업을 위임해주고, 클라이언트에게 보낼 뷰를 선택해서 최종 결과를 생성하는 등의 작업을 합니다. 예외가 발생했을 때 이를 일관된 방식으로 처리하는 것도 프론트 컨트롤러의 역할입니다. 디스패처 서블릿. 스프링 서블릿/MVC의 중앙에 위치한 DispatcherServlet은 모든 연결을 담당하는 프론트 컨트롤러입니다. 웹 브라우저로부터 요청이 들어오면 DispatcherServlet은 그 요청을 제일 앞단에서 ..
-
쿠키(Cookie)와 세션(Session) 개념네트워크 2022. 7. 3. 16:27
쿠키(Cookie) #쿠키(Cookie)란? 쿠키는 웹 서버가 사용자를 기억하고 식별하기 위해 브라우저에 저장하는 데이터입니다. 사용자를 기억하기 위해 왜 쿠키를 쓰는 걸까요? 웹서버와 클라이언트는 http 프로토콜로 통신을 하고 이 http 프로토콜은 stateless 방식입니다. Stateless란? ● 매 요청이 일회성이고 독립적으로 처리되는 방식. ● 서버가 클라이언트의 상태를 보존X 처음 사용자가 웹 사이트에 방문하면 웹 서버는 사용자에 대해서 아무것도 모릅니다. http 프로토콜이 stateless 방식이기 때문입니다. 웹 서버는 사용자가 다시 돌아왔을 때, 해당 사용자를 식별하기 위한 유일한 값을 쿠키에 할당합니다. #쿠키(Cookie)가 필요한 이유 웹서버와 클라이언트는 stateless ..
-
[DB]데이터베이스 정규화(1NF, 2NF, 3NF)데이터베이스 2022. 7. 2. 15:30
정규화란? 정규화란 데이터의 중복을 제거하고 테이블의 안정성을 높이는 과정입니다. 테이블의 안정성을 높인다는 말의 의미는 테이블에 레코드를 insert할 때 null 값이 입력되거나, 삭제 시 연쇄삭제 현상이 발생하거나, 수정 시 데이터의 일관성이 훼손되는 현상을 제거한다는 의미입니다. 정규화된 테이블의 장점 1. 정규 테이블은 중복 데이터가 없어서 데이터베이스의 크기를 줄여줍니다. 2. 찾아야 할 데이터가 적어 쿼리가 더 빨라집니다. 3. 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지 제 1정규형(1NF) 1NF를 만족하는 규칙 제 1정규형, 1NF 규칙1. 각 행의 데이터들은 원자적 값을 가져야 한다. 규칙2. 같은 데이터가 여러 열에 반복되지 말아야 한다. 규칙3. 각 행은 유일무이한 식별..
-
[Spring] Spring Config Server와 Git Private Repository 연동 방법스프링 2022. 6. 18. 17:50
1. 로컬에 ssh key 생성 ssh-keygen -m PEM -t ecdsa -b 521 -C "your_email@example.com" 터미널 or CMD 창을 열어서 위 명령어를 입력한다. $ ssh-keygen -m PEM -t ecdsa -b 521 -C "your_email@example.com" Generating public/private ecdsa key pair. Enter file in which to save the key (/c/Users/kkh24/.ssh/id_ecdsa): example #키 이름 지정 Enter passphrase (empty for no passphrase): #비밀번호 지정 (그냥 엔터치면 비밀번호 지정안함) Enter same passphrase a..
-
[DB] 함수 종속성(functional dependency)이란?데이터베이스 2022. 5. 11. 00:18
함수 종속성(functional dependency) 정의 함수 종속성은 특정 속성(컬럼) A의 값이 바뀌면 다른 속성(컬럼) B의 값도 바뀌거나 특정 속성(컬럼) A의 값을 알면 다른 속성(컬럼) B의 값도 유일하게 정해지는 종속 관계를 말합니다. 다음은 축구선수 정보를 나타내는 축구선수 테이블입니다. name team age address initials James Rodríguez new york city 27 Gotham JR Park Ji Sung Manchester United 25 Manchester JSP cristiano ronaldo Real Madrid 22 Madrid CR 이니셜(initials) 열이 이름(name) 열 값의 이니셜 문자를 포함하고 있습니다. 만약 이름(name)..
-
웹서버와 클라이언트의 송수신 동작 - 소켓, TCP네트워크 2022. 4. 15. 18:26
'성공과 실패를 결정하는 1%의 네트워크 원리' 책을 정리한 포스트입니다. 1. 📕 서버의 개요 1-1. 클라이언트와 서버의 차이점 네트워크에 관한 부분, 즉 LAN 어댑터, 프로토콜 스택, Socket 라이브러리 등의 기능은 클라이언트와 서버는 조금도 다르지 않습니다. 데이터를 송수신하는 관점에서 보면 클라이언트와 서버는 차이점이 없는게 좋습니다. 클라이언트와 서버라는 식으로 역할을 정하지 않고 좌우 대충 어느에서나 자유롭게 데이터를 송수신할 수 있도록 두는게 좋습니다. 데이터 송수신 측면에서의 차이점 : [접속동작], 접속 동작은 한쪽은 기다리고 다른 한 쪽이 연결해야합니다. 접속하는 측이 클라이언트고 접속을 기다리는 측이 서버입니다. 정확히는 Socket 라이브러리를 호출하는 부분에서 차이가 있습니..
-
부동 소수점(floating-point)이란?네트워크 2022. 4. 15. 18:23
부동 소수점이란? 부동소수점(Floating-point) 표현방식이란 실수를 표현할 때 소수점의 위치를 고정하지 않고 소수점의 위치를 나타내는 수를 따로 적는 방식입니다. 프로그래밍 언어에서 사용하는 실수는 IEEE754 규약에 정의된 부동소수점 표현입니다. 부동소수점은 메모리 공간에 부호비트(Sign), 지수부(Exponent)와 가수부(Mantissa)로 나누어 실수 형태의 값을 저장. M∗RE(m:가수,r:밑수,e:지수) 실수형의 저장형식 1. 부호(Sign Bit) ‘S는 부호비트를 의미하며 1 비트이다. 이 값이 0이면 양수를, 1이면 음수를 의미합니다. 정수형과 달리 ‘2의 보수법’을 사용하지 않기 때문에 양의 실수를 음의 실수로 바꾸려면 그저 부호비트만 0에서 1로 변경하면 됩니다. 2. 지..
-
[Querydsl] BooleanExpression을 사용한 동적쿼리 작성데이터베이스 2022. 4. 15. 18:04
Querydsl에서 동적쿼리를 작성할 때 사용되는 BooleanExpression 클래스를 설명하겠습니다.public abstract class BooleanExpressionextends LiteralExpressionimplements Predicate 1. BooleanBuilder동적쿼리를 작성할 때 사용하는 또다른 클래스 중 BooleanBuilder 클래스도 있습니다.BooleanExpression과 BooleanBuilder 둘 중 어느것을 선택하든 성능상의 차이는 없습니다.하지만 BooleanExpression은 어떤 의도의 쿼리문인지 한 번에 파악할 수 없다는 단점이 있습니다.아래는 BooleanExpression사용하여 이름과 나이로 멤버를 찾아주는 메서드입니다. BooleanBuild..