SMALL

데이터 전송 방식?


데이터를 전송하는 방식에는 크게 3가지가 있다.

기초적인데 자꾸 나와서 간단히 정리를 하겠다.


이름

내용

예시

단방향 통신(Simplex)

데이터 송신만 할 수 있고 수신은 불가

라디오,TV

반이중 통신(Half Duplex)

데이터 송수신 가능 하지만, 동시에 불가

무전기

전이중 통신(Full Duplex)

동시에 데이터 송수신 가능

전화기


LIST

'전공 > 네트워크' 카테고리의 다른 글

IEEE 802 위원회 LAN 표준  (0) 2018.07.01
네트워크 토폴로지  (0) 2018.07.01
회선 교환(Circuit Switching)과 패킷 교환(Packet Switching)  (0) 2018.07.01
4-way-handshake  (0) 2018.05.02
3-way-handshake  (0) 2018.05.02
SMALL

SAMBA?


삼바는 리눅스 운영체제에 NETBIOS 프로토콜을 제공하여 윈도우 시스템 운영체제와 자원 또는 프린터를 공유하는 프로그램이다.


특징


1. 인터넷 및 인트라넷에서 서버 파일 및 프린터기를 공유할 수 있는 프리웨어 프로그램

2. TCP/UDP 137,139 port 사용

3. 공통 인터넷 파일시스템 클라이언트, 서버 프로토콜

4. RPM 패키치 설치도구를 사용해서 설치

5. 설정 파일은 /etc/samba/smb.conf 또는 /etc/smb.conf에서 설정


명령어


- samba start : 서버 실행

- samba stop : 서버 정지

- smbd : 삼바에서 NETBIOS 프로토콜로 자료 전송

- nmbd : 삼바에서 NETBIOS 프로토콜의 이름 관리

LIST

'전공 > Linux' 카테고리의 다른 글

null copy(널카피)  (0) 2020.06.05
nohup  (0) 2020.04.25
SMALL

작년 공기업 PT면접에서 나왔던 UNDO와 REDO에 대해 정리를 해보겠습니다.


EX)


UPDATE table

SET cnt = cnt+1

WHERE id = 1;


UNDO


UNDO는 원상태로 돌리다라는 의미를 가진다.

UNDO는 작업 롤백, 읽기 일관성, 복구의 역할을 가지며, 사용자가 했던 작업을 반대로 하는 것이다.


위의 예시에 UNDO 작업을 하면

UPDATE table

SET cnt = cnt-1

WHERE id = 1;


위와 같은 작업을 하게 된다.


REDO


REDO는 작업을 다시하다라는 의미를 가진다.

REDO는 복구의 역할을 하며, 오라클 서버에서 모든 작업에 대해 모두 REDO에 기록을 한다.


위의 예시에 REDO 작업을 하면

UPDATE table

SET cnt = cnt+1

WHERE id = 1;


위와 같은 작업을 하게 된다.


결론


간단하게 말하자면 REDO는 세션을 복구되는 과정에 사용되며 UNDO는 세션이 비정상 종료가 되기전에 커밋이 되지 않을 때 사용된다.

LIST

'전공 > 데이터베이스' 카테고리의 다른 글

CTAS(Create Table As Select)  (0) 2018.07.17
SQL 명령어  (0) 2018.07.16
UNION과 UNION ALL  (0) 2018.06.11
DB정규화  (0) 2018.05.17
트랜잭션  (0) 2018.05.04
SMALL

공기업 면접에서 나왔던 질문이다. 대답을 잘 하지 못해서 정리를 하고자 한다.


TABLE A

data

1

2


TABLE B

data

2

3


UNION


UNION DISTINCT를 줄여서 UNION으로 사용한다.

두 테이블의 결합을 나타내며, 중복을 제거하기 위해 SORT를 사용한다.

자료가 많거나 INDEX가 되어 있지 않은 컬럼을 대상으로 하면 쿼리시간이 길어질 수 있다.


다음 예시를 보자.

SELECT data

FROM A

UNION

SELECT data

FROM B;


위의 쿼리를 실행하면

data

1

2

3


위와 같이 중복된 값이 제거 되서 정렬이 된다.


UNION ALL


UNION ALL은 중복을 제거하지 않고 그대로 합집합 연산을 하여 결과를 보여준다.


다음 예시를 보자.

SELECT data

FROM A

UNION ALL

SELECT data

FROM B;


위의 쿼리를 실행하면

data

1

2

2

3


위와 같이 중복된 값도 합쳐서 나오게 된다.


결론


왠만해선 유니온을 사용하는 것을 추천하지 않는다. 왜냐하면 유니온을 사용한다는 것 자체가 두 개의 테이블을 원래 합쳐야 되는 것이기 때문이다.

그리고 중복에 대해 문제가 크게 나지 않는다면 UNION 보다는 UNION ALL을 사용하는 것이 낫다.(성능 때문에)






LIST

'전공 > 데이터베이스' 카테고리의 다른 글

SQL 명령어  (0) 2018.07.16
UNDO와 REDO  (0) 2018.06.14
DB정규화  (0) 2018.05.17
트랜잭션  (0) 2018.05.04
조인  (0) 2018.05.02
SMALL

정규화?


데이터 베이스 정규화는 불필요한 데이터를 없애고, CRUD 시 발생할 수 있는 이상현상을 방지하게 데이터베이스 설계를 재구성하는 것이다.



1차 정규화


1차 정규화는 각 row마다 column의 값이 1개씩만 있어야 한다. 즉, column이 원자값을 가져야 한다.


이름

나이

과목

철수

16

수학,영어

영희

17

수학

남수

15

국어

기철

18

영어


위의 테이블을 보면 철수의 과목에 2개의 값이 들어 있다.

그래서 1차 정규화에 만족하지 못한다.


이름

나이

과목

철수

16

수학

철수

16

영어

영희

17

수학

남수

15

국어

기철

18

영어


위와 같이 바꾸면 1차 정규화를 만족한다.


2차 정규화


2차 정규화는 모든 column이 완전 함수적 종속을 만족하는 것이다. 즉, 부분적 종속을 제거 하는 것이다.


이름

프로젝트명

부서 

직위

수당

철수

보안관리

개발

팀장

100

철수

IOT만들기

개발

부팀장

70

영희

웹기사분류

분석

팀장

100

남수

형태소분석

연구

사원

50


위의 테이블을 보면 이름, 프로젝트명이 기본키인데 부서 컬럼은 이름에 의해서만 함수적 종속성을 가진다.


이름

프로젝트명

직위

수당 

철수

보안관리 

팀장 

100

철수

IOT만들기

부팀장

70

영희

웹기사분류 

팀장

100

남수

형태소분석

사원

50


이름

부서

철수

개발

영희

분석

남수

연구


위와 같이 두 개의 테이블로 나누면 부분적 종속을 제거하고 2차 정규화를 만족한다.


3차 정규화


3차 정규화는 이행적 함수적 종속성을 제거하는 것이다.


이름

프로젝트명

직위

수당

철수

보안관리

팀장

100

철수

IOT만들기

부팀장

70

영희

웹기사분류

팀장

100

남수

형태소분석

사원

50


위 테이블을 보면 수당은 기본키가 아닌 직위에 의존적이다. 


이름

프로젝트명

직위

철수

보안관리

팀장

철수

IOT만들기

부팀장

영희

웹기사분류

팀장

남수

형태소분석

사원


직위

수당

팀장

100

부팀장

70

사원

50


위와 같이 두 개의 테이블로 나누면 3차 정규화를 만족한다.


BCNF 정규화


비결정자에 의한 함수종속을 제거해야 하는 것이다.


4차 정규화


테이블 내에서 N:M 관계를 가지는 속성들을 분리 하는 것이다.





LIST

'전공 > 데이터베이스' 카테고리의 다른 글

UNDO와 REDO  (0) 2018.06.14
UNION과 UNION ALL  (0) 2018.06.11
트랜잭션  (0) 2018.05.04
조인  (0) 2018.05.02
SQL 인젝션  (0) 2017.11.24
SMALL

자바스크립트 변수 선언하는 방법은 var을 사용했다. 

ES6에서 let와 const 선언 방법이 생겼다.

이 3개의 차이점은 간단하다.


 

변수 재선언

변수 재할당

var

O

O

let

X

O

const

X

X





LIST
SMALL

POJO(Plain Old Java Object)?


스프링을 공부하다보면 POJO란 단어가 자주 나온다.

POJO는 쉽게 말하면 클래스에 getter, setter로만 이루어진 객체를 말한다.


POJO가 왜 스프링의 중요한 특징이냐면 클래스 상속, 인터페이스 구현, 어노테이션 사용을 강제하지 않기 때문이다. 그러면 개발자는 일반적인 형태로 코드를 작성 할 수 있어서 생산성도 유리하고, 코드 테스트에 대해 유연하게 할 수 있게 된다.


POJO가 아닌 대표적인 객체는 서블릿 코드를 작성할 때는 반드시 HttpServlet를 상속 받아야한다. 그럼으로써 강제로 상속을 할 수 없게 된다.

LIST

'전공 > Spring' 카테고리의 다른 글

인터셉터와 필터  (0) 2018.05.13
SMALL

HTTP Method


HTTP Method에는 다음과 같은 메서드가 있다.


이름

 설명

GET

서버에 리소스를 달라고 요청 한다. (Read)

HEAD

GET처럼 동작하지만 헤더 만을 반환한다.

PUT

서버가 요청의 본문을 가지고 요청 URL의 이름대로 새 문서를 만들거나, 이미 URL이 존재하면 본문을 사용해서 교체한다. (Update)

POST

서버에 입력 데이터 전송한다.(Create)

TRACE

클라이언트에게 자신의 요청이 서버에 도달했을 때 어떻게 보이게 되는지 알려준다.

OPTION

웹 서버가 어떤 메서드를 지원하는지 확인한다.

DELETE

파일을 삭제한다. (Delete)


LIST

'전공 > Web' 카테고리의 다른 글

WAS와 웹서버  (0) 2018.05.13
HTTP 상태코드  (0) 2018.05.13
SMALL

프레임워크랑 라이브러리는 엄연히 다르다.

둘의 차이를 알아보자.



Framework


프레임워크는 뼈대나 기반구조를 가지고, 제어의 역전(IOC)개념이 적용된 기술이다.

개념적인 의미는 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스들의 집합이다.


  • 특징
1. 컴포넌트들을 재사용 할 수 있다.
2. 높은 수준에서 패턴을 조작화 할 수 있다.
3. 객체 지향 개발을 하면서 통합성, 일관성 부족 문제를 해결 할 수 있다.

Library


개발자가 만든 클래스를 호출하여 사용하는 것이다.


차이점


프레임워크와 라이브러리의 차이는 어플리케이션의 흐름을 누가 들고 있느냐에 달려 있다.

쉽게 말하면 프레임워크는 전체적인 흐름을 스스로 쥐고 있고, 사용자는 그 안에서 필요한 부분을 코드를 만드는 것이고, 라이브러리는 그냥 가져다 쓰는 것이다.





LIST

'전공 > 기타' 카테고리의 다른 글

Visual SVN 서버 복원  (0) 2020.04.14
마이크로 서비스 아키텍처(MSA)  (0) 2020.04.09
정통기기출3년치  (0) 2019.06.28
정보통신기사 필기 요약집  (1) 2019.06.06
IaaS, PaaS, SaaS  (0) 2018.05.10
SMALL

아파치와 톰캣을 예를 들어서 WAS(Web Application Server)와 웹 서버를 설명 한다.



Web Server


클라이언트가 서버에 요청을 하면 요청을 받아 정적인 데이터를 제공하는 것이다.(html, css 등)

대표적으로 Apach가 있다.


WAS(Web Application Server)


동적인 데이터를 제공하기 위해 사용 되는 것이다.(DB 접근 등)

대표적으로 Tomcat이 있다.


WAS와 Web Server를 나누는 이유


WAS에서 정적인 데이터도 처리하게되면 부하가 생긴다. 그래서 정적인 데이터는 Web Server가 처리하고 동적인 데이터는 WAS에서 처리하게 된다.

LIST

'전공 > Web' 카테고리의 다른 글

HTTP Method  (0) 2018.05.14
HTTP 상태코드  (0) 2018.05.13

+ Recent posts