네트워크의 규칙 프로토콜 네트워크에서도 문제없이 통신하려면 규칙을 지켜야한다. 프로토콜이란? 네트워크를 통신하기 위한 규칙으로, 통신을 원활하게 할 수 있도록 해주는 통신 규약, 약속이라고 한다. OSI 모델과 TCP/IP 모델 표준 규격 ISO (International Organization Standardzation) : 국제 표준화 기구 에서 ‘OSI 모델’ 이라는 표준 구격을 제정하였다. 데이터의 송수신은 컴퓨터에서 컴퓨터로 데이터를 전송하는 것이다. 컴퓨터 내부에서는 여러가지 일을 하는데, 이런 일을 7개의 계층으로 내눠서한다. 7개의 계층이 바로 OSI 모델이다. 계층이라는 용어 대신 레이어 라는 용어를 사용하기도한다. 7계층 [응용 계층] : Application Layer : 이메일 & ..
가정에서의 랜 구성 가정에서 구성하는 네트워크 = 랜(LAN) 인터넷을 사용하려면 인터넷 서비스 제공자(ISP) 와 인터넷 회선을 결정해야한다. 가정에서 네트워크를 구성하려면 인터넷 서비스 제공자와 네트워크를 연결하기 위해 필요한 장비가 있는데, 이를 ‘인터넷 공유기‘ 라고 한다. 인터넷 공유기 : Broadband route 브로드밴드 라우터로, 가정이나 소규모 기업에서 인터넷에 접속할때 쓰인다. 가정용으로 만든 라우터라고 생각하면 된다. 라우터, 허브, 스위칭 허브, 방화벽과 같은 다양한 기능을 제공한다. 연결 방식은 유선과 무선 2가지가 있다. 간단하게 랜 케이블이 필요하면 유선이고, 랜 케이블이 필요하지 않으면 무선이다. 회사에서의 랜 구성 소규모 회사에서의 네트워크 구성에 대해 알아보자. 가정에..
랜과 왠의 개념 네트워크는 접속할 수 있는 범위에 따라 2가지 종류로 나눌 수 있다. 1) 랜(LAN_Local Area Network): 건물 안이나 특정 지역을 범위로 하는 네트워크 * 가정이나 빌딩 안에 있는 사무실 같이 지리적으로 제한된 곳에서 컴퓨터와 프린터를 연결할 수 있는 네트워크 2) 왠(WAN_Wide Area Netword) : 지리적으로 넓은 범위에 구축된 네트워크 * 인터넷 서비스 제공자(ISP_Internet Service Provider) 가 제공하는 서비스를 사용하여 구축된 네트워크 (ex: KT, U+, SK브로드밴드 등) * 랜과 랜을 연결하는 것 * 거리를 멀리 떨어져있지만 인터넷 서비스 제공자의 서비스를 사용하여 네트워크를 구축할 수 있다. 랜과 왠의 차이 범위 (LAN..
비트와 바이트란? 디지털 데이터에 대해 알아보자. 모든 컴퓨터는 숫자 0, 1만 다루는데, 그 0과 1의 집합을 ‘디지털 데이터’ 라고 한다. 컴퓨터는 0과 1 밖에 이해할 수 없지만, 이처럼 0과 1이 많이 모이면 사진도 나타낼 수 있다. 이러한 0, 1의 정보를 나타내는 최소단위를 비트(Bit) 라고 한다. 0과 1을 표현하는 1비트는 0 또는 1인 숫자 8개로 표시할 수 있다. 이 단위를 바이트(Byte)라고 부른다. 결과적으로 8 Bit = 1 Byte 라는 식이 성립된다. 컴퓨터는 기본적으로 바이트 단위로 데이터를 읽고 쓰는 작업을 한다. 디지털 데이터를 만들때는 8 비트를 1 바이트로 다루는 것이 좋다. 아스키코드 그리고 숫자와 문자의 대응표가 있다. 이 대응표를 문자코드(character c..
배경 웹 브라우저에서 웹 사이트를 볼수 있는 게 다양한 네트워크 기술 덕분이다. 네트워크와 관련된 문제가 발생하였을때 그 원인이 무엇인지 파악하는 건 문제를 해결하는데에 매우 중요하다. 네트워크는 다양한 기능이 결합되어있는데, 그 기능은 여러 계층(레이어) 형태로 구성되어있다. 그 계층 구조를 이해하면 문제가 발생한 원인이 네트워크 장비인지 애플리케이션인지 판단할 수 있다. 컴퓨터 네트워크란? 네트워크는 컴퓨터 간의 연결만이 아닌, 사람과 사람의 네트워크, 도로와 철도의 네트워크, 물류 네트워크와 같이 다양한 네트워크가 있다. 그 중, 컴퓨터 간의 네트워크를 연결한 것이 '컴퓨터 네트워크' 이다. 한 대만으로는 컴퓨터 네트워크라고 할 수 없지만, 두 대 이상 연결되어있으면 훌륭한 컴퓨터 네트워크가 되고,..
Before WM_CONCAT() 사용 전의 select 조회 select * from dept; DNAME AA BB CC After WM_CONCAT() 사용 후의 select 조회 select WM_CONCAT(DNAME) from dept; DNAME AA,BB,CC 위 결과를 보았을때, WM_CONCAT() 함수를 사용하여 원하는 컬럼의 여러 데이터를 하나의 행으로 표현할 수 있다.
SpringBoot 에 Redis를 연동해보자 1. build.gradle 에 dependency 를 추가한다. //redis compile "org.springframework.boot:spring-boot-starter-data-redis" compile "redis.clients:jedis:2.9.0" compile "org.springframework.session:spring-session-data-redis" 2. application.yml 파일에 redis 정보를 추가한다. (.properties 파일) #Redis redis: host: 127.0.0.1 port: 6379 3. RedisConfig.java 를 생성한다. @Configuration public class RedisCon..
사용된 어노테이션 SpringBoot 프레임워크에서 Exception 처리를 공통처리를 해보자. 그전에, 알아야할 어노테이션을 정리해보자. 어노테이션 설명 @RestController @Controller + @ResponseBody 이다. Json, Xml 등의 format으로 return 해줄 경우에 사용한다. @RestControllerAdvice 기본은 @ControllerAdvice 어노테이션이 존재하는데, Json, Xml Format으로 return 해줄 경우 대신 사용한다. 웹 어플리케이션 전역에서 Exception 발생시, 해당 에러를 잡아 처리한다. @ExceptionHandler 발생한 Exception 에 따라 선택적으로 특정 메소드를 실행한다. Exception 파일 BadRequ..
서브쿼리란? 1. 정의 - 하나의 SQL문안에 포함되어 있는 또 다른 SQL문을 말한다. 2. 주의점 - 괄호로 감싸서 사용한다. - 단일 행(Single Row) 또는 복수 행(Multiple Row) 비교 연산자와 함께 사용 가능하다. - 단일 행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하이어야 하고, 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관 없다. - ORDER BY를 사용하지 못한다. ORDER BY절은 SELECT절에서 오직 한 개만 올 수 있기 때문에 ORDER BY절은 메인쿼리의 마지막 문장에 위치해야 한다. 3. 서브쿼리가 사용가능한 절 - SELECT 절, FROM 절, WHERE 절, HAVING 절, ORDER BY 절, INSERT문의 VALUES 절, UPDATE..
조인의 개요 1. 정의 - 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는것 - JOIN은 관계형 데이터베이스의 가장 큰 장점이면서 대표적인 핵심 기능이라고 할 수 있다. - 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립된다. - 하지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능하다. 2. 주의할점 - FROM 절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어난다는 것이다. +예시) Equi Join 1. 정의 - 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법이다. - 대부분 PK ↔..
Reactive 의 예시 Reactive의 뜻은 반응형이다. 리액티브를 이해하기 위해서, 하나의 상황을 예로 들어보자. 한 어플리케이션에서 시간당 평균 약 1,000명의 사용자가 방문한다고 가정해보자. 톰캣을 웹 서버로 실행하고, 500개의 스레드로 톰캣 스레드 풀을 구성했다. 위 상황에서, 사용자 요청에 대한 평균 응답 시간은 약 0.250ms이다. 그럼 1초에 2,000명의 사용자의 요청을 처리할 수 있다. 그렇다면 평균 약 1,000명의 사용자가 들어오는 위 어플리케이션의 웹 서버는 평균 부하를 처리하기에 매우 충분하다. 요악하면 이 경우는 처리 능력을 기준으로 애플리케이션을 구성한 것이다. 그런데 만약, 특정 할인날에 폭발적인 고객 증가로 서버 부하가 발생했다고 가정해보자. 스레드 풀에 사용자 요..
Swagger 요즘 백엔드 개발은 ModelAndView 방식보다는 API 위주의 어플리케이션을 권장하고 있다. API 개발이 많아짐에 따라, 프로젝트 안의 API를 관리할 수 있는 문서가 필요해졌다. API 문서를 만들기 위해서 Swagger을 프로젝트 안에 Setting 하여 사용해보자. Swagger에는 많은 기능들이 담겨져있다. 우리는 Swagger을 사용하여 어노테이션을 통해 그 많은 기능들을 사용할 수 있다. Swagger + SpringBoot 연동 1. build.gradle 에 의존성 추가 //swagger compile "io.springfox:springfox-swagger2:2.9.2" compile "io.springfox:springfox-swagger-ui:2.9.2" 2. W..
Feign 적용 외부 API를 쉽게 호출할 수 있는 Http Client Binder인 Feign을 적용해보자. 개발환경 : SptringBoot 2.1.8 1. build.gradle 에 의존성 추가 //feign compile "org.springframework.cloud:spring-cloud-starter-openfeign:2.1.0.RELEASE" 2. application.yml 에 feign으로 연동할 외부 Server 정보 설정 # feign URL feign: test-api: url: http://localhost:7070 httpclient: connection-timeout: 1 3. SpringBoot의 xxxAplication.java 파일 안에 @EnableFeignClien..
docker oracle 이미지 설치 docker pull jaspeen/oracle-xe-11g 설치된 이미지 컨테이너 실행 docker run –name oracle11g -d -p 1521:1521 jaspeen/oracle-xe-11g docker exec -it oracle11g sqlplus
centos7 설치 yum -y install http://dev.mysql.com/get/> mysql57-community-release-el7-11.noarch.rpm yum -y install mysql-community-server systemctl start mysqld systemctl enable mysqld mysql 최초 접속시, 임시 비밀번호로 설정되어있기 때문에 root 계정 비밀번호 찾아야한다. cd /var/log/ vi mysqld.log 로그인 이후 임시비밀번호 바꿔줘야한다. alter user ‘root’@’localhost’ identified by ‘HM2Vw?BX1KNb’; flush privileges; use 데이터베이스명; update user set authen..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.