본문 바로가기

CS/CS지식

(6)
도식만 봐도 흐름이 잡히는 『서버 구조』 핵심 요약 노트 『그림으로 배우는 서버 구조』를 읽고, 각 차트별로 핵심 내용을 정리해보려 합니다.이 과정을 통해 서버 구조에 대한 이해를 좀 더 체계적으로 정리하는것이 목적인 글입니다.” Ch1. 서버의 기본 서버는 애플리케이션 소프트웨어를 동작시키는 중심 역할을 하는 컴퓨터다.이 서버는 다음과 같은 세 가지 형태로 나눌 수 있다. 1. 클라이언트의 요청에 대응하는 수동형 서버클라이언트가 먼저 서버에 요청을 보내면, 서버는 그 요청을 받아 처리한다.파일 서버, 프린트 서버, 메일 서버 등이 여기에 해당하며, 보통 서버 한 대에 여러 대의 클라이언트가 접속하는 구조다.서버는 항상 대기 상태로 있다가 클라이언트 요청이 올 때만 반응한다. 2. 서버가 능동적으로 처리하는 주도형 서버서버가 먼저 클라이언트에게 명령을 내리고..
의존관계 주입이란? 의존관계 주입의 의존관계란 무엇인가?  "A가 B를 의존한다." 라는 말을 풀어서 말하자면 A라는 클래스가 B라는 클래스를 사용(=의존) 하고있다. 라는 것으로 A라는 클래스 안에 B 라는 클래스를 추가 생성하지않고 B클래스 인스턴스를 만들어서(=외부) 이를 끌고온다는 것이라고 할 수 있다. 이는 B의 기능이 추가 또는 변경되거나 형식이 바뀌면 그 영향이 A에 미친다는 것과 동일한 의미로 볼 수 있는데 밑의 예시를 보면  위의 코드는 A는 B를 의존하고 있는 상황이다. 여기서 A는 B의 gorani()를 가지고오고있는데 여기서 B의 gorani()가 banana()로 변경된다면 A역시 B().banana(); 로 변경해야하는 상황이 생기며 B의 영향이 A에게 까지 미쳐짐에 A는 B를 의존한다. 라고 이..
DB의 프로시저란? 프로시저란? 프로시저란 SQL Server에서 제공하는 프로그래밍 기능이다. 쿼리문을 마치 하나의 메서드 형식으로 만들고 어떠한 동작을 일괄적으로 처리하는 용도로 사용된다.   프로시저 사용 이유 1. 효율성쿼리문을 작성하다보면 여러 개의 칼럼을 조회하고 여러 개의 테이블을 조인하고 거기에 조건까지 넣어줌으로써 하나의 쿼리를 만드는데 엄청나게 긴 쿼리문이 생길 수 있다. 이러한 여러개의 쿼리를 사용할 때마다 긴 쿼리문을 써야 한다면 엄청나게 불편할 텐데 이를 프로시저에 저장하고 저장된 프로시저를 호출하여 프로그래밍을 하는것이 훨씬 효율적입니다.즉, 하나의 요청으로 여러 SQL문을 실행할 수 있는 것이다. 2. 네트워크 소요 시간을 줄일 수 있다.만약 동일한 쿼리를 1000번 2000번 호출하는 것보다 S..
정규화와 비정규화 정규화란? DB의 관계형 데이터베이스 논리적 설계 과정으로서 중복을 최소화 하는 프로세스라고 할 수 있다. 즉, 데이터베이스 설계를 할 때 보다 효율적이고 조직된 관계의 테이블 쿼리를 작성하기 위해 참고하는 일종의 체크리스트이다. 정규화 과정 위에서 아래 순서로 정규화를 체크해야하며 아래단계의 규형이 만족되지 않은 상태에서 다음 단계로 넘어갈 수는 없다. 보통 실무에선 3규형까지만 주로 많이 쓰이며 가끔 BCNF 개념이 나오는 형태로서 본 블로그에서는 BCNF까지만 설명하겠다. 1규형(원자값으로 테이블 구성) 1규형의 가장 중요한 포인트는 모든 속성이 "원자값"을 가져야한다는 것이다. "원자값"이라는 의미는 더이상 분리가 되지않을 정도라는 것을 의미하는데 데이터 베이스의 원자값이란 표현은 몹시 포괄적 표..
HTTP란? HTTP 공부계기 HTTP에 대해선 정말 많이 들어봤고 자연스럽게 사용을 하고있었지만 나는 단순히 웹서버의 프로토콜 정도로만 생각을 해왔었다. 그런데 수업시간에 강사님이 get과 post을 알려주시는데 HTTP를 모르니 get과 post가 자꾸 추상적으로만 개념이 잡히고 제대로 이해가 되지 않았다. 그래서 이젠 JSP 수업도 들어갔으니!!! 서버를 만질일도 많아졌고!! 더이상 미룰 순 없다!!! 라고 생각하여 HTTP 공부를 시작해보았다. HTTP란? 우리가 인터넷을 하는데 사용하는 꼭 필요한 프로토콜이다. 예를들어 인터넷 브라우저 주소창에 http://www.google.com을 을 입력하고 Enter를 입력하게되면 해당 데이터가 여러 경로를 타고 들어가 구글 서버에 도착하게되고 구글서버에서는 html..
객체지향 프로그램이란? 객체지향프로그래밍 공부의 계기 JAVA를 공부하면서 가장 오묘하고 무슨소린지 모르겠던 것은 바로 객체지향이라는 것이다. 살면서 처음들어봤다. 객체지향.. 강사님이 열변을 토해도 아무것도 모르는 나에겐 그냥 추상적인 개념일 뿐 아무런 이해가 되지 않았다. 그런데 이제 JAVA 프로젝트를 시작해야하고 어떻게 효율적으로 효과적이게 잘 코드를 짤 수 있을까? 하고 생각을 하던 중 강사님의 "JAVA는 객체지향프로그래밍이다."라는 말이 떠올랐고 JAVA가 지향하는 방법을 따라가면 나의 고민에 대한 실마리가 있을까 싶어 열심히 찾아봤다. 캡슐화 캡슐화는 데이터 그리고 데이터를 활용하는 함수들을 캡슐 즉, 어떠한 컨테이너(Class) 안에 넣어 두는 것을 뜻한다. 1 2 3 4 5 6 7 8 9 10 11 12 13..