hj_kim97의 등록된 링크

키자드에 등록된 총 289개의 포스트를 확인하실 수 있습니다.

Naver Blog

[Spring]Argument Resolver 사용법

Spring Argument Resolver 사용법 - Argument Resolver란? - Argument Resolver 용도 - Argument Resolver 구현 - 어노테이션 제한하기 Argument Resolver란? Argument Resolver는 어떠한 요청이 컨트롤러에 들어왔을 때, 요청에 들어온 값으로부터 원하는 객체를 만들어 내는 일을 간접적으로 해줄 수 있습니다. Argument Resolver는 HandlerMethodArgumentResolver를 구현함으로써 사용이 가능한데 이것은 공식 문서에 컨트롤러 메소드에서 특정 조건에 맞는 파라미터가 있을 때 원하는 값을 바인딩 해주는 인터페이스라고 명시되어 있습니다. · Servlet과 Controller 사이에서 전달되어진 값을 가공하거나 추가할 필요가 있을 때 사용이 가능합니다. · 쉽게, 사용자 요청이 들어오고, Controller 메소드가 실행되기전에 Argument Resolver로 등록된 객체가 해

Naver Blog

[Java]제네릭(Generic) 사용법 정리(제네릭 타입 변수, 와일드 카드, PECS)

Java 제네릭 사용법 정리 - 제네릭(Generic)이란? - 제네릭을 사용해야 하는 이유 - 제네릭 사용법 - 자주 사용하는 타입 인자 - 타입 변수 여러개 지정 - 타입 변수 제한 - 제네릭 메소드 - 와일드 카드의 등장 - 와일드 카드 사용법 - PECS(Producer-Extends, Consumer-Super) 공식 제네릭(Generic)이란? 제네릭(Generic)은 Java에서 소스코드 컴파일 시 타입을 체크해주는 기능입니다. 주로 여러가지 타입을 다루는 클래스나 메소드에 적용하여 사용합니다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안전성을 높일 수 있고, 형 변환의 번거로움을 줄일 수 있습니다. · 파라미터 타입이나 리턴 타입에 대한 정의를 외부로 미룹니다. · 타입에 대한 유연성과 안전성을 확보합니다. · 런타임 환경에 아무런 영향이 없는 컴파일 시점의 전처리 기술입니다. 제네릭을 사용해야 하는 이유 제네릭을 사용으로 얻을 수 있는 가장 큰 이점은

Naver Blog

[강의 요약]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 요약

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 요약 - IntelliJ 기본 세팅 - 프로젝트 생성하기 - 예제 프로젝트 환경 - 라이브러리 의존 관계 - Spring 결과 반환 방식 - 스프링 빈과 의존관계(DI) - 스프링 DB 접근 기술 · 1. 데이터베이스 설치 · 2. 순수 JDBC를 이용한 방법 · 3. 스프링 JdbcTemplate를 이용한 방법 · 4. JPA를 이용한 방법 · 5. 스프링 데이터 JPA를 이용한 방법 - AOP IntelliJ 기본 세팅 프로젝트 JDK 설정 File > Project Structure... > Project > SDK 설정 Build 및 Run 도구 변경 File > Settings... > Build, Execution, Deployment > Build Tools > Gradle > Build and run using, Run tests using (IntelliJ IDEA로 변경) 프로젝트 생성하기 I

Naver Blog

[JSP]JSTL 및 EL 사용 방법

JSP JSTL 및 EL 사용 방법 - JSTL이란? - JSTL 설치 및 다운로드 - JSTL 확장 태그 종류 - JSTL 사용 방법 · JSTL Core Library 사용법 · JSTL Formatting Library 사용법 - EL이란? - EL 내장객체 종류 - EL 연산자 종류 - EL 리터럴 표현식 - EL 표기법 - JSTL + EL 사용하기 - 알아두면 좋은 JSTL 표현들 JSTL이란? JSTL은 JavaServer Pages Standard Tag Library의 약어로, Java 코드를 바로 사용하지 않고 HTML 태그(<>) 형태로 직관적인 코딩을 지원하는 라이브러리입니다. Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음 XML 데이터 처리와 조건문, 반복문, 국제화와 지역화와 같은 일을 처리하기 위한 JSP 태그 라이브러리 자신만의 태그를 추가할 수 있는 기능을 제공합니다. JSTL 설치 및 다운로드 JSTL을 사용하기 위해서는 JS

Naver Blog

[Spring]타일즈(Tiles) 설정 및 사용법 (템플릿엔진, 동적메뉴, ViewPrepare)

Spring Tiles 설정 및 사용법 - Tiles란? - Tiles 관련 용어 - Tiles 사용법 · 1. 의존성 추가 · 2. Tiles 관련 Bean 등록 · 3. Tiles 관련 설정 - Tiles 동적 메뉴 설정하기 · 1. Tiles 관련 Bean에 ViewPrepare 옵션 설정 · 2. ViewPrepare 인터페이스 구현 · 3. MenuPrepare Bean 등록 · 4. tiles 레이아웃 수정 Tiles란? Tiles는 레이아웃 템플릿 엔진으로 중복되는 include 코드를 사용하지 않고도 지정된 페이지 레이아웃에 따라 페이지 타일을 조합하여 완전한 페이지로 만들어줍니다. 반복되는 부분들을 한 곳에서 관리할 수 있게 도와주는 템플릿 프레임워크입니다. JSP Include와 비슷하지만, Tiles는 레이아웃 템플릿 엔진으로 레이아웃을 구성하는데 좀 더 세분화되고 관리하기 쉬워 유지보수에 용이합니다. tiles에는 상속 기능이 있기때문에, 기존의 값을 참조하여

Naver Blog

[Spring]Spring Exception Handling(예외 처리) 및 Global Exception Handler(전역 예외 처리)

Spring Exception Handling 및 Global Exception Handler - @ExceptionHandler 어노테이션 - @ControllerAdvice, @RestControllerAdvice 어노테이션 - Global Exception Handling(전역 예외 처리) 전략 - Enum을 이용하여 에러 코드 및 메시지 관리하기 Spring Exception Handling 스프링은 일관성 있는 코드 스타일을 유지하면서 Exception을 처리할 수 있도록 다양하고 막강한 어노테이션을 제공하고 있습니다. · @ControllerAdvice, @RestControllerAdvice, @ExceptionHandler @ExceptionHandler 어노테이션 @ExceptionHandler는 Controller 계층에서 발생하는 에러를 잡아서 메소드로 처리해주는 기능입니다. · Controller 클래스안에 메소드로 정의하거나, @ControllerAdvice,

Naver Blog

[Spring Security]Spring Security란 무엇인가?

Spring Securiy란 무엇인가? - Spring Security란? - 인증과 인가 - Spring Security 동작 과정 및 주요 모듈 Spring Security란? Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크입니다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있습니다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller 사이에 위치한다는 점에서 적용 시기의 차이가 있습니다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자가 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있습니다. · 보안과 관련하여 체계적으로 많은 옵션을 제공하여 편리하게 사용 가능 · fi

Naver Blog

[Spring Security]Spring Security 기초 사용법(스프링 시큐리티 기본 API 및 Filter 이해)

Spring Security 기초 사용법 - Spring Security 프로젝트 실행하기 - HttpSecurity 설정 메소드 - Login Form 인증 로직 플로우 - Logout 플로우 - Remember Me 인증 - Remember Me 인증 플로우 - 익명 사용자 인증 필터 - 동시 세션 제어 - 세션 고정 보호 - 세션 정책 - 세션 제어 필터 - 권한 설정 및 표현식(인가 API) - 인가 API 예제 코드 - 예외 처리 및 요청 캐시 필터 - 사이트 간 요청 위조(CSRF) Spring Security 프로젝트 실행하기 1. 의존성(Dependency) · 스프링 시큐리티 의존성을 추가한 것만으로도 서버 기동시 스프링 시큐리티의 초기화 작업 및 보안 설정이 이루어집니다. · 기본적으로 username: "user" / password: "랜덤 문자열" 로 계정이 제공됩니다. 랜덤 문자열 비밀번호는 실행할 때 Console에 출력됩니다. <dependency> <g

Naver Blog

[Linux]리눅스 심볼릭 링크 사용법(ln 명령어, 소프트 링크, 하드 링크, inode)

리눅스 심볼릭 링크 사용법 - inode란? - 링크 유형(하드 링크, 심볼릭 링크) - ln 명령어 사용법 - ln 명령어 예시 - 심볼릭 링크와 하드 링크 차이 inode란? inode란 파일을 기술하는 디스크 상의 데이터 구조로서 파일의 데이터 블록이 디스크 상의 어느 주소에 위치하고 있는 지에 대한 파일에 중요한 정보를 갖고 있습니다. Inode에는 파일의 소유권 및 권한 여부에 대한 정보, 파일 내용이 들어있는 디스크 내의 물리적 주소, 파일의 링크 수, 형태, 크기, 만들어진 시간 등을 저장하고 있습니다. 파일을 생성할 때 inode가 i-list 안에 만들어지며 inode의 inumber와 파일 이름이 디렉토리에 등록됩니다. 파일을 삭제할 때는 그 파일에 대한 inode의 파일 링크수가 하나 감소되고 디렉토리 entry 상에는 해당 파일의 inumber가 0으로 변합니다. inode의 파일 링크 수가 0이 되면 파일의 디스크 블록은 free가 되며 inode는 dello

Naver Blog

[Linux]리눅스 nohup 명령어 사용법(nohup, &(백그라운드))

리눅스 nohup 명령어 사용법 - nohup이란? - nohup과 &(백그라운드)의 차이 - nohup 명령어 사용법 - 파일 출력없이 nohup 실행하기 - 표준 출력 파일 변경하기 - nohup 명령어 예시 nohup 이란? nohup은 no hang up의 약어로 해석 그대로 프로세스를 실행한 터미널의 세션 연결이 끊기더라도 지금 실행시킨 프로그램을 종료시키지 않도록 하는 명령어입니다. 기본적으로 터미널 연결이 종료되면 SIGHUP(HUP)이라는 신호(시그널)가 전송됩니다. 때문에, 일반적으로 SSH를 통해 터미널로 접속하여 프로그램을 실행 중일 때, 연결이 끊기거나 세션이 종료되는 경우 HUP signal이 보내지게 되고 터미널에서 실행 중이던 모든 프로세스가 중지됩니다. · SIGHUP(HUP) : 터미널 인터페이스에 의해 연결의 단절이 감지되면 해당 제어 터미널과 연결된 제어 프로세스에게 전달되는 신호입니다. · 즉, nohup은 터미널 세션이 끊겨 HUP signal로

Naver Blog

[Node.js]nodemon 설치 및 사용 방법 정리

nodemon 설치 및 사용 방법 정리 - nodemon 모듈 - nodemon 설치 - nodemon 실행 - nodemon 실행 명령어 설정(package.json) nodemon 모듈 Node.js 애플리케이션 개발 시 서버 코드를 변경할 때마다 변경사항을 확인하기 위해서는 서버를 끄고 다시 실행해야하는 번거로움이 있습니다. nodemon은 node monitor의 약자로, 노드가 실행하는 파일이 속한 디렉토리를 감시하고 있어 파일이 수정되면 자동으로 노드 애플리케이션을 재시작해주는 확장 모듈입니다. 공식 사이트: https://www.npmjs.com/package/nodemon nodemon 설치 nodemon을 사용하려면, 시스템 경로에 전역으로 설치하거나, 로컬 설치를 진행합니다. 로컬 설치를 사용하면 시스템 경로에서 nodemon을 사용할 수 없거나 명령줄에서 직접 사용할 수 없습니다. 대신 npm 스크립트를 사용하여 (ex. npm start) nodemon을 실행할

Naver Blog

[Spring Cloud]Spring Cloud Feign 사용법 총정리

Spring Cloud Feign 사용법 총정리 - Feign이란? - 의존성(Dependency) - @EnableFeignClients 어노테이션 - @FeignClient 인터페이스 구현 - @FeignClient Config 정보 설정 Header - @FeignClient Config 정보 설정 응용 · Logger · Encoder & Decoder · ErrorDecoder · FeignFormatterRegistrar · Retryer · Hystrix Fallback - Error 핸들링 구현 Feign이란? Feign은 Netflix에서 개발한 웹 서비스 클라이언트 도구로 어노테이션을 템플릿화된 ㅛㅇ청으로 처리해 동작하는 Http Clinet Binder 입니다. 인터페이스를 작성하고 어노테이션을 선언하는 방식으로 Feign을 이용하여 웹 서비스 클라이언트를 보다 쉽게 작성할 수 있습니다. · Nextflix에서 개발한 오픈 소스 · 선언적 방식으로 Rest 기반

Naver Blog

[node.js]Express dotenv 모듈 사용법 정리(환경 변수 설정)

dotenv 모듈 사용법 정리 · dotenv 모듈이란? · dotenv 사용법 · dotenv 다른 경로에 있는 파일 사용하기 · ES 모듈에서 환경 변수 불러오기 (import) · dotenv DB 연결 예시 dotenv 모듈이란? dotenv는 환경변수를 .env파일에 저장하고 process.env로 로드하는 의존성 모듈입니다. dotenv를 사용하는 이유는 우리가 개발을 하는 과정에서 서버주소, 고유 API KEY 값 등 필요한 정보들을 저장을 하게 된다. 그리고 이러한 정보들은 민감한 정보임과 동시에 보안이 이루어져야 하는 정보들이다. 만약 이러한 정보들이 오픈소스(깃허브)에 공개될 경우, 해킹을 당하거나 보안적인 면에서 위험할 수 있습니다. 이러한 문제로 dotenv패키지를 이용하여 환경변수 파일(.env)을 외부에 만들어 접근할 수 있게 하고, 개발 초기 단계에서 세팅하기를 권고합니다. · 공식 문서: https://www.npmjs.com/package/dotenv

Naver Blog

[Node.js]Node MySQL 연동하기(mysql 모듈 사용법)

Node MySQL 연동하기(mysql 모듈 사용법) - mysql 모듈이란? - 연결 설정(Connect) - 연결 종료(end) - 연결 풀링(pool) - 쿼리 수행(Query) - 여러 쿼리문 수행 - 타임 아웃 - Express 및 mysql 모듈 설정 예시 mysql 모듈이란? mysql 모듈은 Node.js용 Mysql 드라이버입니다. JavaScript로 작서되었으며 컴파일이 필요하지 않고, MIT 라이선스로 존재합니다. 공식 문서: https://github.com/mysqljs/mysql → npm install mysql # mysql 모듈 설치 // 1. mysql 모듈 불러오기 const mysql = require('mysql'); // 2. DB Connection 생성 및 연결 const connection = mysql.createConnection({ host : 'localhost', port : 3306, user : 'root', password

Naver Blog

[Node.js]Sequelize 기초 사용법(sequelize-cli, CURD 사용하기)

Sequelize 기초 사용법(sequelize-cli, CRUD 사용하기) - ORM이란? - Sequelize란? - Sequelize 사용하기 · 프로젝트 초기화 진행 · 초기 파일 설명 · model 만들기 · model 옵션 추가하기 · CRUD 사용하기 ORM이란? ORM은 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말합니다. 객체 지향 프로그래밍에서는 클래스를 사용하고, 관계형 데이터베이스에서는 테이블을 사용합니다. 때문에, 객체 모델과 관계형 모델 간에 불일치가 존재합니다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결할 수 있습니다. · SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있어 개발자가 객체 지향 프로그래밍을 하는 데 집중할 수 있습니다. · 개발자는 Object에 집중함으로써 극단적으로 DBMS를 교체하는 작업에도 비교적 적은 리

Naver Blog

[Node.js]EJS 템플릿 엔진 사용법(node 동적 화면 만들기)

EJS 템플릿 엔진 사용법 - ejs란? - ejs 기본 문법 - Express 연동 - Express 연동 예시 ejs란? ejs는 Embedded JavaScript Template의 약자로 node.js 진영에서 많이 사용하는 템플릿엔진입니다. ejs는 지정된 태그를 통해 스크립트 내용을 하나의 요소처럼 사용될 수 있게 합니다. 또한 서버에서 보낸 변수를 가져와 사용할 수 있습니다. · 공식 문서: https://ejs.co/#promo · Java에서 JSP 파일을 이용하여 Java 코드 블록을 사용했던 것과 같이 Node에서 EJS 파일을 이용하여 JavaScript 코드 블륵을 사용할 수 있습니다. · 정적인 .html 파일이 아닌, .ejs라는 파일안에 HTML 문법과 ejs 문법을 사용하여 동적인 화면을 제공합니다. → npm install ejs # ejs 모듈 설치 ejs 기본 문법 주석 : <%# ... %> JS 코드 : <% ... %> 변수 출력(html e

Naver Blog

[Node.js]request 모듈 사용법(HTTP 요청 라이브러리)

request 모듈 사용법 - request 모듈이란? - 요청 메소드 - 단순 GET 요청 - GET 요청(QueryString 포함) - POST 요청(Form 요청) - POST 요청(JSON 요청) - POST 요청(Multipart) - 사용자 정의 HTTP 헤더 - Promise 및 Await/Async 이용하기 request 모듈이란? request 모듈은 node.js가 클라이언트가 되어 서버에 요청을 보낼 수 있는 기능을 제공하는 HTTP 요청 모듈입니다. 상당히 다양한 HTTP request 형식을 지원하고, npm 초창기부터 있던 모듈로 사용법이 간단합니다. ※ 2020년 2월 11일 요청이 완전히 중단되어 deprecated 되었습니다. → npm install request # request 모듈 설치(promise 기반이 아님) → npm install request-promise-native # promise를 이용한 request 모듈 요청 메소드 //

Naver Blog

[Git]Git 사용법 총정리(Git, Github, 워킹디렉토리, 스테이지, 지역저장소, 원격저장소)

Git 사용법 총정리 - Git이란? - 형상 관리 방식 · 공유 폴더 방식 · 클라이언트/서버 방식 · 분산 저장소 방식 - Git의 Workflow · 워킹 디렉토리(Working Directory) · 스테이지(Staging Area) - Git 초기 설정 · Config 설정 · 사용자 설정 · CRLF 설정 · 명령어 Alias 설정 · .gitignore 파일 · 코드 에디터 설정 - Git 명령어 · 깃 초기화 : git init · 상태 확인 : git status · 변경된 내용 확인 : git diff · 버전 히스토리에 저장하기 : git commit · 버전 히스토리 확인하기 : git log · 파일 변경 및 삭제하기 : git rm, git mv · 버전 이력에 태그 지정하기 : git tag · 브랜치 관련 명령어 : git branch, git switch, git checkout, git merge · 병합 충돌 문제 : conflict · 버전 이력

Naver Blog

[Node.js]Node json-server를 이용하여 Mock Server 만들기

Node json-server를 이용하여 Mock Server 만들기 - Mock Server 개요 - Mock Server란? - json-server 사용하기 · 1. data.json 파일 작성하기 · 2. json-server 실행하기 · 3. API 테스트하기 Mock Server 개요 일반적으로 프로젝트를 진행할 때 프론트엔드 개발자와 백엔드 개발자가 서로 협력하여 하나의 애플리케이션을 개발합니다. 이때, 프론트엔드 개발자 입장에서 백엔드 개발자가 서버 프로그램 API 개발이 완료되지 않으면, 화면에서 사용할 데이터를 받지 못하여 서버 프로그램이 개발될 때까지 개발을 못하고 기다리게 됩니다. 이때, Mock 서버를 이용하여 서버 API 구축이 되지 않아도, 프론트엔드 개발을 진행할 수 있도록 도움을 받을 수 있습니다. Mock Server란? Mock 서버란 실제 서버처럼 클라이언트로부터 요청을 받으면 응답을 하는 가짜 서버를 말합니다. 서버와 클라이언트 간의 API가 정

Naver Blog

[Node.js]express 사용법 총정리(Express 실행, 라우팅, app.use, 에러처리, 정적 파일 제공하기)

express 사용법 총정리 - Express란? - Express 실행하기 - Express 라우팅 처리 · 라우트(Route) 경로 · 라우트(Route) 핸들러 · 응답 메소드 · 라우트(Route) 체인 · app.use() 함수 · 모듈식 라우터 - Express 에러 처리하기(Exception Handling) - 정적 파일 제공하기 Express란? Express는 가장 인기있는 Node 웹 프레임워크로 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Bode.js 웹 애플리케이션 프레임워크입니다. Node.js는 오픈 소스, 크로스 플랫폼이며, 개발자가 모든 종류의 서버 사이드 도구들과 애플리케이션을 JavaScript로 만들 수 있도록 해주는 런타임 환경입니다. Express는 이런 Node.js의 원칙과 방법을 이용하여 웹 애플리케이션을 만들기 위한 프레임워크입니다. · 최소한의 기능만을 탑재하였지만, 개발자들이 거의 모든 웹 개발의

Naver Blog

[Node.js]Express 미들웨어 모듈 정리(body-parser, cookie-parser, express-session, cors, morgan, multer)

Express 미들웨어 모듈 - 미들웨어 모듈 - 데이터 파싱 : body-parser 미들웨어 - 데이터 압축 : compression 미들웨어 - 쿠키 관리 : cookie-parser 미들웨어 - 쿠키 세션 : cookie-session 미들웨어 - 세션 관리 : express-session 미들웨어 - CORS 관리 : cors 미들웨어 - 로깅 관리 : morgan 미들웨어 - 파일 업로드 : multer 미들웨어 - 코드 실행 시간 측정 : response-time 미들웨어 - 타임아웃 설정 : connect-timeout 미들웨어 선행해야 할 내용 · express 사용법 총정리 : https://blog.naver.com/hj_kim97/222913693753 미들웨어 모듈 Express는 웹 서버 운영을 위한 다양한 미들웨어 모듈을 제공합니다. 미들웨어 모듈 설명 body-parser HTTP 요청 bot를 파싱합니다. · 내장 함수 : express.bodyPars

Naver Blog

[Linux]리눅스 새로운 하드디스크 연결하기(파티션 추가 및 디스크 마운트)

리눅스 새로운 디스크 연결하기 - 개요 - VMWare를 이용하여 가상 디스크 설정하기 - 새로운 하드디스크 연결하기 개요 윈도우에서 하드디스크같은 보조기억장치를 연결할 때 용량에 따라 파티션 및 포맷여부 등을 설정해야 사용할 수 있습니다. 리눅스에서도 마찬가지로 새로운 하드디스크를 추가하기 위해서는 장치에 파일시스템을 설치한 뒤 특정 디렉토리에서 마운트해서 사용해야합니다. 또한 재시작할 때 마다 해당 장치를 자동으로 읽어오기 위해서는 별도의 설정이 필요합니다. · 쉽게, 하드 디스크를 연결 후 OS에서 이것을 인식하고 사용하기 위해서 물리적 공간(하드디스크)과 소프트웨어(OS)를 연결시켜 실제로 컴퓨터에서 사용할 수 있도록 마운트해야합니다. · fdisk: 디스크 현황 및 파티션 현황 확인, 디스크의 파티션 관리 · mkfs: 파티션의 파일 시스템 생성 · mount: 파티션을 경로에 연결, ㄹ파티션의 파일 시스템을 확인 · fsck: 파티션의 파일 시스템을 확인 VMWare를 이

Naver Blog

[Spring]Spring Redirect 및 Forward 사용법

Spring Redirect 및 Forward 사용법 - Redirect와 Forward의 차이 - Spring 처리 방식 - Spring Redirect, Forward 예시 - Redirect 시 파라미터 넘기기 Redirect와 Forward의 차이 Redirect Redirect는 서버에 요청이 들어온 후 서버에서 실제로 클라이언트로 HTTP Status Code 302를 전송합니다. 전송된 응답을 클라이언트에서 받아서 302 응답 코드를 확인하고 응답의 Location 헤더에서 URL을 읽어들여 해당 URL로 다시 요청을 보냅니다. · 실제적으로 클라이언트측에서 2번의 요청을 보내게 되고, URL이 변화된 것을 알게 됨 · 클라이언트에서 새로운 Location에 대해 요청을 하기 때문에 Web Container 내부에서 자원을 공유할 수 없습니다. 자원을 공유하기 위해서는 QueryString을 이용하여 사용합니다. Forward Forward는 서버에 요청이 들어온 후 서

Naver Blog

[Docker]도커 컴포즈(docker compose)란? (도커 컴포즈 사용법 및 문법 정리)

도커 컴포즈 사용법 및 문법 정리 - 도커 컴포즈(docker compose)란? - 도커 컴포즈 문법 - 도커 컴포즈 명령어(커맨드) - 도커 컴포즈 사용 예시 도커 컴포즈(docker compose)란? Compose란 사전적 의미로 "구성하다"라는 뜻으로, Docker Compose란 여러개의 컨테이너를 모아서 하나의 어플리케이션을 구성하는 것을 말합니다. 만약에 A 컨테이너에 Node.js 앱에서 B 컨테이너에 레디스 서버를 접근한다고 한다면, 서로 다른 컨테이너끼리는 아무 설정 없이는 접근이 불가능합니다. 때문에 멀티 컨테이너 상황에서 쉽게 네트워크를 연결시켜주기 위해 Docker Compose를 이용할 수 있습니다. · 다중 컨테이너 도커 어플리케이션을 정의하고 실행하기 위한 도구 · yaml 파일을 사용하여 어플리케이션의 서비스를 구성 · 도커 컴포즈로 실행된 컨테이너는 기본적으로 같은 네트워크로 실행하기 때문에 따로 설정이 필요없습니다. 단일 컨테이너들을 같은 네트워크

Naver Blog

[Docker]복잡한 애플리케이션 환경 구성하기(Node + React + Nginx + DB)

Docker 복잡한 애플리케이션 환경 구성하기 - Back-End 서버 생성하기 - Front-End 서버 생성하기 - Docker 환경 구성하기 · Front-End(React) 도커 환경 구성 · Back-End(Node) 도커 환경 구성 · DB(MySQL) 도커 환경 구성 · Nginx(리버스 프록시 기능)을 위한 도커 환경 구성 · docker-compose 작성 - 운영 환경 구성시 추가 작업 애플리케이션 구조 Back-End 서버 생성하기 1. package.json · 프로젝트에 대한 설명과 의존성 모듈에 대한 정의가 명시된 파일입니다. · express : 웹 애플리케이션을 구축하기 위한 서버 모듈 · mysql : MySQL 커넥션 연결 및 쿼리를 사용하기 위한 모듈 · nodemon : 디렉토리를 감시하여 파일 내용 변경시 서버 재실행없이 변경 내용을 적용해주는 모듈 · body-parser : HTTP 본문(body)의 내용을 쉽게 파싱하여 사용하기 위한 기능을

Naver Blog

[DevOps]CI/CD란?

CI/CD란? - CI/CD란? · - CI란? - CI가 적용이 안된다면? - CI가 적용이 된다면? · - CD란? - CD가 적용이 된다면? · - CI/CD의 최종 비즈니스 이점 - CI/CD 툴 종류 CI/CD란? 이미지 출처 - 인코덤(https://incodom.kr) CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법입니다. CI는 지속적인 통합(Continuous Integration), CD는 지속적인 배포(Continuous Deployment) 또는 지속적인 서비스 제공(Continuous Delivery)을 의미합니다. 이미지 출처 - https://techblogpedia.com/ (CI/CD 절차) CI/CD는 애플리케이션 구축, 테스트 및 배포에 자동화를 적용하여 개발 및 운영 활동과 팀 간의 격차를 해소하기 위해 고안된 방법입니다. 개발자가 만든 코드 변경 사항을 컴파일한 다음 이를 소프트웨어 결과물에

Naver Blog

[MySQL]MySQL 초기 설정(데이터베이스 생성, 계정 생성, 권한 설정)

MySQL 기초 - 데이터베이스(DataBase) - MySQL 초기 설정 - 데이터 베이스 목록 확인 - 데이터 베이스 생성 - 데이터 베이스 CharSet 설정 데이터베이스(DataBase) 데이터베이스(DB:DataBase)는 통합하여 관리되는 데이터의 집합체를 의미합니다. MySQL에서는 스키마(Schema)와 데이터베이스(DataBase)는 동일한 의미를 갖습니다. ※ 다른 DBMS에서는 스키마와 데이터베이스가 다른 의미로 구별 되기도 합니다. Oracle - 오라클에서 스키마는 사용자(USER)가 생성한 모든 오브젝트(테이블, 인덱스, 프로시저 등)를 의미합니다. - 스키마에 각각의 사용자에게 선택적인 권한을 부여합니다. - 오라클에서 데이터베이스는 실제 물리적인 데이터베이스를 의미합니다. MySQL/MariaDB - 데이터베이스와 스키마가 같은 의미로 테이블 등의 오브젝트 집합입니다. PostgreSQL - 데이터베이스는 스키마의 상위 개념입니다. - 데이터베이스가 다르

Naver Blog

[SQL]엑셀(Excel)로 SQL 쿼리 만들기

엑셀(Excel)로 SQL 쿼리 만들기 - 개요 - 엑셀(Excel)로 SQL 쿼리 만드는 방법 개요 업무를 하다보면 운영팀에서 특정 정보를 일괄 등록에 대한 요청이 옵니다. 이때 엑셀로 등록할 정보를 받게 되는 경우가 많은데, 엑셀 파일로 SQL문을 만들어 해당 쿼리를 이용하여 등록을 진행할 수 있습니다. 아니면, 특정 정보는 조회한 후 DB 툴을 이용하여 조회한 정보를 엑셀로 다운받을 수 있습니다. 이때 다운받은 엑셀로 데이터를 비교하고, 수정이 필요한 값이 있을 경우 엑셀로 SQL 쿼리를 만들어 사용할 수 있습니다. · 대용량 데이터가 아닌, 500개 이하의 데이터에 대한 UPDATE나 INSERT시 유용 · 간단한 쿼리의 테스트 데이터를 여러개 넣을 때에도 유용 엑셀(Excel)로 SQL 쿼리 만드는 방법 좌측에는 조회한 정보가 정렬되어 있고, 정보 우측 셀을 클릭하여 쿼리를 생성합니다. 셀 내용은 ="쿼리문" 으로 시작하여, 셀 위치에 '"&셀 좌표&"'로 특정 셀의 정보를

Naver Blog

[Docker]도커 기본 개념 및 사용법 정리

도커 기본 개념 및 사용법 정리 - 도커 이미지(Docker Image)란? - 이미지와 레이어(Layer) - 도커 컨테이너(Docker Container) - 도커 컨테이너(Docker Container) 작동 원리 - docker run 명령어 사용 흐름 - docker run 명령어 사용 예시 - docker run <이미지> <실행파일> 사용 예시 선행해야 할 내용 서버 가상화 기술 종류 : https://blog.naver.com/hj_kim97/222563588022 도커 설치(Windows) : https://blog.naver.com/hj_kim97/222301189018 도커 이미지(Docker Image)란? 이미지는 도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 Docker Image라고 합니다. 다시 말해, 특정 프로세스를 실행하기 위한 모든 파일과 설정값을 지닌 것으로, 더 이상의 의존성 파일을 컴파

Naver Blog

[Oracle/Tibero]INSERT, UPDATE 문법 정리(SELECT INSERT, INSERT ALL, INSERT FIRST, UPDATE JOIN, MERGE)

INSERT, UPDATE 문법 정리 INSERT 문법 정리 · 일반 형식 · 일반 형식 : 컬럼명 생략 · 서브쿼리 INSERT(SELECT INSERT) · INSERT ALL · INSERT FIRST UPDATE 문법 정리 · 일반 형식 · WHERE 절에 EXSISTS 함수 사용 · 조인하여 UPDATE하는 방법(UPDATE JOIN) · MERGE INTO 구문 INSERT 문법 정리 일반 형식 · INTO 절의 컬럼 개수와 데이터 타입이 VALUES 절의 컬럼 개수와 데이터 타입이 동일해야 합니다. INSERT INTO emp ( emp_no, ename, job, mgr, hiredate, sal, dept_no ) VALUES ( 1000, 'SCOTT', 'DEVELOPER', 2000, SYSDATE, 3000, 20 ) 일반 형식 : 컬럼명 생략 · 기본 테이블의 모든 속성을 사용할 때는 속성명을 생략할 수 있습니다. ※ 테이블에 컬럼에 추가되거나 삭제되었을 경

Naver Blog

[jQuery]ajax 사용법 정리

jQuery ajax 사용법 정리 - AJAX란? - 동기와 비동기 - AJAX의 장단점 - AJAX를 사용하는 방법 - jQuery를 이용한 Ajax AJAX란? AJAX란 비동기 자바스크립트와 XML (Asynchronous JavaScript And XML)을 말합니다. 간단히 말하면, 서버와 통신하기 위해 XMLHttpRequest 객체를 사용하는 것을 말합니다. JSON, XML, HTML, 일반 텍스트 형식 등을 포함한 다양한 포맷을 주고 받을 수 있습니다. AJAX의 주요 특징으로는 페이지를 새로고침하지 않아도 수행되는 '비동기성' 입니다. 이러한 비동기성을 통해 사용자의 Event가 있으면 전체 페이지가 아닌 일부분만을 업데이트 할 수 있게 합니다. · 자바스크립트를 이용해서 비동기식으로 XML을 이용하여 서버와 통신하는 방식 · 최근에는 XML보다 JSON 형식을 더 많이 사용합니다. 동기와 비동기 동기(Synchronous) 동기는 말 그대로 동시에 일어난다는 뜻으

Naver Blog

SQLD 시험 후기 및 공부 방법(노랭이, 하양이, SQL 개발자 과외노트)

SQLD 시험 후기 및 공부 방법 정리 - SQLD 신청 조건 및 접수 방법 -SQLD 시험 과목 및 합격 기준 - 시험 공부 방법 · 1. 문제집 선택 · 2. 문제집 및 공부 방법 정리 - 시험 후기 및 결과 SQLD 신청 조건 및 접수 방법 SQLD는 응시자격이 따로 존재하지 않습니다. 아래 데이터 자격 검정 사이트에서 SQLD 시험 접수가 가능합니다. · 시험 일정 : 1년에 총 4번 · 시험 응시료 : 50,000원 · 공식 사이트 : https://www.dataq.or.kr/www/main.do 데이터자격시험 연간일정 자격소개 시험접수 시험결과조회 자격증발급 민원접수 공지사항 더보기 · 제26회 데이터분석 전문가(ADP) 실기시험 응시안내 · 신분증 인정범위(모바일 신분증 포함) · 사전점수 공개 및 재검토 신청 안내 · 데이터자격검정 응시자 유의사항(2022.09) · 코로나19 관련 자격검정 수수료 환불신청 안내 · 제46회 SQL 개발자 인천(옥련중학교) 고사장 변

Naver Blog

[Docker]Node.js 프로젝트를 도커로 생성하기

Node.js 프로젝트를 도커로 생성하기 - Node.js 프로젝트를 도커로 생성하기 · 1. Node.js 설치하기 · 2. Node.js 프로젝트 생성하기 · 3. Node.js 프로젝트 웹 서버 구성하기 (express 모듈) · 4. Dockerfile 작성하기 · 5. dockerfile 빌드 및 실행 - 프로젝트 재빌드 - 프로젝트 재빌드 개선 - docker run VOLUME 옵션 사용 선행해야 할 내용 도커 기본 개념 및 사용법 정리 : https://blog.naver.com/hj_kim97/222870522243 Dockerfile이란? : https://blog.naver.com/hj_kim97/222316420960 Node.js 프로젝트를 도커로 생성하기 1. Node.js 설치하기 먼저 Node.js 프로젝트를 생성하기 위해서는 컴퓨터에 node.js가 설치되어야 합니다. · Node.js 다운로드 : https://nodejs.org/ko/download

Naver Blog

[FileZilla]Error: open for write: permission denied 에러

에러 내용 Error: 파일명: open for write: permission denied Error: File transfer failed all transfers have finished. files could not translate. 발생 원인 FTP를 이용해 서버에 파일을 옮길 때, 해당 디렉토리에 파일에 대한 쓰기 권한이 없는 경우 발생 · 디렉토리안에 파일을 옮길 수 있는 권한이 없음 해결 방안 해당 디렉토리에 권한을 추가 · root 계정 혹은 해당 홈 디렉토리의 유저 계정으로 진행 ※ FileZilla로 로그인한 계정으로 업로드한 파일의 권한이 적용되니, 권한 변경이 필요하다면 chown <계정>:<그룹> [업로드한파일명] 명령어로 권한을 변경합니다. # 해당 디렉토리의 권한만 변경시 → chmod 777 /var/www/html # 해당 디렉토리와 하위 모든 파일의 권한 변경시 → chmod -R 777 /var/www/html 출처 티스토리 블로그(threeid

Naver Blog

보이스피싱 대처 방법

최근 부모님께서 보이스 피싱을 당하셨습니다. 피해 금액이 엄청나게 크지 않아서 다행이었지만, 휴대폰 원격 허용과 개인정보가 모두 노출되어 처리해야 할 것이 많았습니다. 보이스 피싱을 처음 당했다보니 대처하는 것에도 번거로움이 많아 대처에 대해서 글을 정리하게 되었습니다. 보이스 피싱을 당하고 나서 관련 글을 찾아보니 주말에 처리할 수 있는 일이 적다보니 금요일에 많이 보이스 피싱을 한다고 합니다. 때문에 실시간으로 대처할 수 있는 일과 영업일(평일)에만 대처할 수 있는 일을 정리하려고 합니다. 먼저 시간에 관계없이 보이스피싱 피해 신고와 계좌 지급정지 신청이 가능하고, 개인정보노출 등록 신청을 통해 대리명의로 계좌 개설 및 카드 발급 등을 막을 수 있습니다. 하지만, 늦게 등록 신청되어 이미 휴대폰 개통 혹은 계좌가 발급되었다면 취소되지는 않는 것 같습니다. 또 118에 연락하여 공동인증서 폐기를 할 수 있다고 하는데, 어카운트 인포를 통해 통합계좌조회(계좌, 카드, 대출 정보) 등

Naver Blog

[C++]C++ 기초문법 정리(선행처리, 입출력 스트림, 명칭공간, 자료형, 조건문, 반복문, 포인터, 참조, 함수, 값 호출, 참조 호출)

C++ 기초문법 정리 - C++ 언어의 소개 - C++ 언어의 표준 - C++ 프로그램의 작성 및 빌드 - C++ 언어의 기초 · 주석 · 선행처리 · 입출력 스트림(cout, cin) · 명칭공간 · 키워드 · 식별자 · C++ 자료형 · 상수의 표현 · const와 constexpr · 흐름제어 구조(조건문, 반복문) · 구조체 · 배열 · 포인터와 동적 메모리 할당 · 참조 · 함수 · 인수의 전달(값 호출, 참조 호출, 디폴트 인수, 함수 다중정의) C++ 언어의 소개 C++ 언어는 C 언어의 문법적 토대 위에 객체지향 프로그래밍을 비롯한 진보된 프로그래밍 기법을 지원할 수 있도록 만들어진 언어입니다. 따라서 C언어가 가지고 있는 모든 기능이 C++ 안에 포함되어 있으며, 이와 더불어 몇가지 새로운 내용이 C++에 추가되었습니다. · 1979년 Bell 연구소의 Bjarne Stroustrup이 C 언어를 확장하여 만든 프로그래밍 언어 · C언어는 절차적 프로그래밍 언어이지만

Naver Blog

[C++]C++ 기초 문법 정리(클래스)

C++ 기초 문법 정리 - 객체(Object)란? - 클래스(Class)란? - 클래스 기본 특징 - 객체의 정의 및 사용 - 생성자 - 소멸자 - 디폴트 생성자 - 객체 배열의 선언 - 복사 생성자 - rvalue 참조 - 이동 생성자 - static 데이터 멤버와 static 멤버 함수 - 위임 생성자 - 초기화 리스트 생성자 클래스 선언과 객체 정의 객체(Object)란? 객체란 소프트웨어 시스템 안의 어떠한 대상을 표현한 것으로 상태(state)와 행동(behavior)으로 구성됩니다. · 정해진 처리를 수행할 수 있습니다. (행위, 메소드, 멤버함수) · 처리 과정에 따라 내부 상태가 변화할 수 있습니다. (속성, 데이터 멤버) · 다른 객체와 상호작용 할 수 있습니다. (메시지 전달, 멤버함수 호출) 클래스(Class)란? 클래스란 객체를 만들어내기 위해 정의된 설계도(틀)로 객체가 포함할 데이터 멤버와 멤버함수의 정의를 포함합니다. · 추상 자료형을 표현하기 위해 사용되

Naver Blog

[Oracle/Tibero]Oracle PL/SQL 문법 정리(선언부, 실행부, 예외처리부, 프로시저, Procedure, 함수, Function)

Oracle PL/SQL 문법 정리 - PL/SQL이란? - PL/SQL의 기본 구조(선언부, 실행부, 예외처리부) - 프로시저(Procedure) - 함수(Function) PL/SQL이란? PL/SQL은 Oracle's Procedural Language extension to SQL의 약자로 SQL의 확장된 개념으로 ORACLE에서 제공하는 프로그래밍 언어의 특성을 수용한 SQL 확장 문법입니다. PL/SQL Block 내에서 SQL의 DML(데이터 조작어)문과 Query(검색어)문, 절차형 언어(if, loop) 등을 사용하여 절차적 프로그래밍을 가능하게 한 강력한 트랜잭션 언어입니다. * PL/SQL의 종류 * 1. 익명 Procedure -> 이름없이 사용되는 PL/SQL 블록 -> DB에 저장되지 않고 사용자가 필요할 때마다 반복적으로 작성, 실행 2. Stored Procedure -> 생성 이후 DB에 정보가 저장됨 -> 실행하려는 로직을 처리하고 PL/SQL 블록의

Naver Blog

[Oracle/Tibero]그룹 함수 및 윈도우 함수 정리

그룹 함수 및 윈도우 함수 정리 - 그룹 함수란? · 집계 함수 : COUNT, SUM, AVG, MAX, MIN · 소계(총계) 함수 : ROLLUP, CUBE, GROUPING SETS - 윈도우 함수란? · 순위 함수 : RANK, DENSE_RANK, ROW_NUMBER · 집계 함수 : COUNT, SUM, AVG, MAX, MIN · 행 순서 함수 : FIRST_VALUE, LAST_VALUE, LAG, LEAD · 비율 함수 : RATIO_TO_REPORT, PERCENT_RANK, CUME_DIST, NTILE 선행해야 할 내용 - 데이터 조작어(DML) : https://blog.naver.com/hj_kim97/222827309207 그룹 함수란? 데이터를 GROUP BY 하여 나타낼 수 있는 데이터를 구하는 함수입니다. 역할에 따라 집계 함수와 소계(총계) 함수로 나눌 수 있습니다. · 집계 함수 : COUNT, SUM, AVG, MAX, MIX 등 · 소계(총계

Naver Blog

[Spring JPA]Entity Listener(엔티티 이벤트 리스너, @EnableJpaAuditing, @MappedSuperclass)

Entity Listener(엔티티 이벤트 리스너) - Entity Listener란? - Entity Listener 예제 코드 - EntityListeners 어노테이션 - EntityListener를 이용하여 History 테이블 생성하기 - @EnableJpaAuditing 어노테이션 - @MappedSuperclass 어노테이션 Entity Listener란? Entity Listener는 엔티티의 변화를 감지하고 테이블의 데이터를 조작하는 일을 합니다. JPA에서는 7가지 Event를 제공합니다. · 공식 문서 : https://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/listeners.html · JPA Entity에 이벤트가 발생할 때 콜백처리를 할 수 있도록 지원해주는 서비스 어노테이션 기능 @PrePersist persists 메소드가 호출되기 전에 실행되는 메소드 · INSERT 쿼리전에 호

Naver Blog

2022 한강나이트워크 22K 후기

2022 한강나이트워크 22K 후기 - 한강나이트워크 신청 및 시작 - 한강나이트워크 기념품 - 한강나이트워크 대회 방식 - 한강나이트워크 22K 후기 한강나이트워크 신청 및 시작 공식 사이트 : https://urbansports.kr/ 인스타 : https://www.instagram.com/urbansports.kr/ 늘 혼자 마라톤 신청해서 완주했었는데, 이번에는 작년 한강나이트워크때 알게된 친구들과 함께 참가하게 되었습니다. 작년 2021년 한강나이트워크 완주하기 직전에 우연히 알게 되었는데, 나이도 동갑이었던 터라 인연이되어 일년후인 2022년 한강나이트워크를 같이 참가하게 되었습니다. 대회는 2022/07/30일 토요일에 시작하고, 티켓 신청은 2022/05/27일 금요일로 2달전에 신청을 받았습니다. 티켓 공지에 대한 내용은 작년에는 홈페이지에서 확인할 수 있었으나, 이번에는 홈페이지가 이전되었고, 신청할 당시 초기에 관리가 잘 안되었던 것 같아 인스타로 일정을 확인할

Naver Blog

[Spring]Spring Validation(데이터 유효성 검증)

Spring Validation(데이터 유효성 검증) - Spring Validation - Spring Validation 어노테이션 - Spring Validation 사용하기 - Valid 결과 제어하기(BindingResult) - AssertTrue/False 어노테이션 사용방법 - Custom Validate 어노테이션 만들기 Spring Validation 올바르지 않은 데이터를 걸러내고 보안을 유지하기 위해 데이터 검증(Validation)은 여러 계층에 걸쳐서 적용됩니다. Client의 데이터는 조작이 쉬울 뿐더러 모든 데이터가 정상적인 방식으로 들어오는 것이 아니기 때문에, Client Side 뿐만 아니라 Server Side에서도 데이터 유효성을 검사해야 할 필요가 있습니다. 스프링부트에서는 @Validated를 이용해 유용성을 검증할 수 있습니다. Spring Validation 어노테이션 어노테이션 설명 @Size(min=값, max=값) 문자 길이 제한 @

Naver Blog

[통합 인증]SSO(Single Sign-On, SAML, OAuth)

SSO(Single Sign-On, SAML, OAuth) - SSO란 무엇인가? - SSO의 등장 배경과 주요 기능 및 특징 - SSO 구축 유형(Delegation, Propagation) - SSO 인증 흐름 및 토큰 유효성 검사 방법 - SSO 주요 보안 요구 사항 - SSO 구현 방식(SAML, OAuth, OIDC) SSO란 무엇인가? SSO는 Single Sign-On의 약자로 하나의 로그인 인증 정보를 사용해 여러 애플리케이션에 접근할 수 있는 중앙화된 세션 및 사용자 인증 서비스입니다. 지정된 플랫폼 하나에서 인증되면 이후 매번 로그인과 로그아웃을 반복할 필요없이 다양한 서비스를 사용할 수 있습니다. · 한 번의 인증만으로 모든 서비스를 사용 가능케 해주는 유용한 통합인증 기능 SSO의 등장 배경과 주요 기능 및 특징 최근 회사들이 그룹화 되거나 대형화가 되어서 여러 사이트들을 통합 관리하는 경우 SSO를 사용합니다. 이때, 통합 인증 SSO를 사용하게 되면, 관리자

Naver Blog

[Oracle/Tibero]데이터 제어어(DCL, Data Control Language)

데이터 제어어(DCL) - 데이터 제어어(DCL, Data Control Language) - GRANT / REVOKE 명령어 - COMMIT 명령어 - ROLLBACK 명령어 - SAVEPOINT 명령어 데이터 제어어(DCL, Data Control Language) DCL은 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어입니다. · 데이터베이스 관리자(DBA)가 데이터 관리 목적으로 사용 명령어 기능 COMMIT 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알림 ROLLBACK 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구 GRANT 데이터베이스 사용자에게 사용 권한을 부여 REVOKE 데이터베이스 사용자의 사용 권한을 취소 GRANT / REVOKE 명령어 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하거나 취소하기 위한 명령어입니다. · G

Naver Blog

[Oracle/Tibero]데이터 조작어(DML, Data Manipulation Language)

데이터 조작어(DCL) - 데이터 조작어(DML, Data Manipulation Language) - 삽입문(INSERT) - 삭제문(DELETE) - 갱신문(UPDATE) - 검색문(SELECT) · WHERE 절 조건 연산[비교, 논리, LIKE, 특수 연산자] · 그룹 지정 및 그룹 함수[GROUP BY, SUM, AVG, ..] · WINDOW 함수[ROW_NUMBER(), RANK()] · 집합 연산자[UNION, UNION ALL, INTERSEPT, EXCEPT] · JOIN · INNER JOIN[INNER JOIN, NATURAL JOIN, JOIN USING] · OUTER JOIN[LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN] · SELF JOIN(셀프 조인) · CROSS JOIN(교차 조인) 데이터 조작어(DML, Data Manipulation Language) DML은 데이터베이스 사용자가 저장된 데이터를 실질적으로 관리하는데 사

Naver Blog

정보처리산업기사 시험 후기(신청 방법, 시험 과목, 합격 기준, 필기, 실기 시험후기)

정보처리산업기사 시험 후기(신청 방법, 시험 과목, 필기, 실기 시험후기) - 정보처리산업기사 신청 조건 - 정보처리산업기사 시험일정 및 응시료 - 정보처리산업기사 시험과목 및 합격 기준 - 정보처리산업기사 필기 시험 후기 - 정보처리산업기사 실기 시험 후기 - 정보처리산업기사 결론 정보처리산업기사 신청 조건 1. 관련학과 2년제 전문대졸 또는 졸업예정 (2년이상) 2. 동일, 유사 분야의 실무경력 2년 이상 3. 기능사 + 실무경력 1년 3. 학점은행제 41학점 이수자 정보처리산업기사 시험일정 및 응시료 국가 기술 자격증 시험으로 1년에 총 3회 응시 가능 · 필기시험 응시료 : 19,400 원 · 실기시험 응시료 : 20,800 원 · 보통 필기 시험의 경우 3, 5, 8월에 진행 · 처음 원서 접수할 때 응시자격서류 제출을 해야하는데, [큐넷 홈페이지 > 로그인 > 마이페이지 > 응시자격 > 응시자격서류 온라인 제출] 페이지에서 학력 증명서를 제출 후 제출한 서류로 계속하여 접

Naver Blog

[MySQL]MySQL 다운로드 및 설치(MySQL Server, 환경 변수 등록)

MySQL 다운로드 및 설치(MySQL Server, 환경 변수 등록) - MySQL 다운로드 - MySQL 설치하기 - MySQL 실행하기 - Mysql 환경 변수 설정하기 MySQL 다운로드 1. MySQL 다운로드 페이지 이동 · MySQL 공식 사이트 : https://www.mysql.com/ · MySQL 다운로드 페이지 : https://dev.mysql.com/downloads/mysql/ · MySQL 사이트 접속 > 하단에 DOWNLOADS 메뉴 > MySQL Community Server 클릭 > Go to Download Package 클릭 > 다운로드 진행 2. Download 클릭 · MySQL 다운로드 페이지 : https://dev.mysql.com/downloads/windows/installer/8.0.html · 2022년 7월기준 MySQL 8.0.30 버전 · 5.5M 파일 : 인터넷을 통해 필요한 소프트웨어를 받을 수 있는 프로그램 · 448.

Naver Blog

[Spring JPA]JPA 어노테이션 정리(@Entity, @Table, @Id, @Column, , @Enumerated, ..,하이버 네이트 초기화 전략)

JPA 어노테이션 정리 - JPA 어노테이션 - JPA 어노테이션 예시 - 기본키 SEQUENCE 전략 예시 - 기본키 TABLE 전략 예시 - @Access 어노테이션 예시 - 하이버네이트 초기화 전략 JPA 어노테이션 · 객체와 테이블 매핑 : @Entity, @Table · 기본키 매핑 : @Id, @GeneratedValue, @SequenceGenerator, @TableGenerator · 필드와 컬럼 매핑 : @Column, @Enumerated, @Temporal, @Lob, @Transient · 연관 관계 매핑 : @OneToOne, @OneToMany, @ManyToOne, @ManyToMany, @Joincolumn 어노테이션 적용 위치 기능 @Entity 클래스 해당 클래스를 테이블과 매핑한다고 JPA에게 알려줍니다. @Entity가 사용된 클래스를 엔티티 클래스라고 합니다. @Table 클래스 엔티티 클래스에 매핑할 테이블 정보를 지정합니다. @Table 어

Naver Blog

[CentOS]CentOS7 Nginx 설치 및 실행 방법

CentOS7 Nginx 설치 1. yum 외부 저장소 추가 2. Nginx 라이브러리 설치 3. 방화벽 포트 개방 4. Nginx 포트 설정 5. Nginx 데몬 실행 6. 실행화면 1. yum 외부 저장소 추가 yum 저장소에는 nginx가 없기 때문에 외부 저장소를 추가합니다. 1. vi 편집기를 통해 ningx.repo 파일 생성 → vi /etc/yum.repos.d/nginx.repo 2. nginx.repo 내용 작성 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 2. Nginx 라이브러리 설치 저장소를 추가하였다면 설치를 진행합니다. → yum install -y nginx 3. 방화벽 포트 개방 웹 서버의 8080 포트를 사용할 계획이라면, 8080 포트를 개방합니다. · 기본 설치시 방화벽 설정이 안되어있어 따로 해당 작업을 하지 않아도

Naver Blog

[네트워크/통신]HTTPS란 무엇인가? (HTTPS, SSL, TLS, SSL 개념 및 동장방식, SSL 핸드셰이크)

HTTPS란 무엇인가? - HTTPS란? - SSL이란? - TLS란? - SSL 동작 방식 - SSL 핸드셰이크 HTTPS란? HTTP란 HyperText Transfer Protocol의 약자로 하이퍼텍스트(HyperText)를 전송(Transfer)하기 위해 사용되는 통신 규약(Protocol)입니다. 즉, 인터넷에서 HTML과 같은 문서를 사용자 컴퓨터에 설치된 웹 브라우저가 웹 서버에 요청할 때의 규칙이라고 할 수 있습니다. HTTPS란 HTTP에 S(Secure Socket)가 추가된 하이퍼텍스트 전송 프로토콜 보안을 나타냅니다. 쉽게, HTTPS의 기본 골격이나 사용 목적 등은 HTTP와 거의 동일하지만, 데이터를 주고 받는 과정에 '보안' 요소가 추가되었다는 것이 가장 큰 차이점입니다. 쉽게, HTTPS를 사용하면 서버와 클라이언트 사이의 모든 통신 내용이 암호화됩니다. http 는 브라우저와 웹 서버 간에 하이퍼텍스트 형식으로 데이터를 전송하는 반면 https는 암호

Naver Blog

[Web Server]Nginx SSL 인증서 적용하기(HTTPS 적용)

Nginx SSL 인증서 적용하기 - CSR(인증서 서명 요청) - HTTPS 키 발급받기(SSL 인증서) - 도메인, SSL 인증서 무료 발급받기 - SSL 인증서 적용하기 · SSL 인증서 파일 병합하기 · SSL 인증서 파일 병합시 주의점 · Nginx에 HTTPS 적용하기 · Nginx 개인키 적용시 주의점 - Nginx 서버 재실행 선행해야 할 내용 SSL 개념 및 동작방식 : https://blog.naver.com/hj_kim97/222806086679 SSL 인증서 CSR 생성 : https://blog.naver.com/hj_kim97/222806162156 CSR(인증서 서명 요청) 웹사이트에 대한 SSL 인증서를 얻으려면 인증서 서명 요청(CSR)을 생성하여 CA(인증 기관)에 제출해야 합니다. CSR이란 SSL 인증서를 받기 위해 신청자가 CA에 제출한 인코딩된 메시지입니다. 즉, 디지털 인증서를 발급받기 위해 신청자가 CA에 요청하는 것입니다. CSR에는 공개

Naver Blog

SSL 인증서(개인키 및 CSR 생성, CA, CSR, SSC, openssl)

SSL 인증서(개인키 및 CSR 생성, CA, SCR, SSC, openssl) - SSL 인증서 - CA(Certicate Authority) - CSR(Certifiacate Signing Request) - SSC(Self Signed Certificate) 선행해야 할 내용 SSL 개념 및 동작방식 : https://blog.naver.com/hj_kim97/222806086679 SSL 인증서 SSL 인증서는 클라이언트와 서버간의 통신을 제 3자가 보증해주는 전자화된 문서입니다. 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서 정보를 전달하게 됩니다. 클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증안 후에 다음 절차를 수행합니다. · 이 인증서를 이용한다면 서로간의 통신 내용을 보호할 수 있고, 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지 판단이 가능합니다. 또 통신 내용의 악의적인 변경을 방지할 수 있습니다. · 클라이언트가 접속한

Naver Blog

[Oracle/Tibero]오라클 중복 데이터 제거(ROWID, 중복행삭제)

오라클 중복 데이터 제거 - 오라클 중복 데이터 제거하는 방법 - ROWID란? - 중복 데이터 제거하기 오라클 중복 데이터 제거하는 방법 중복된 데이터를 제거하기 위해 테이블의 PK를 이용합니다. 하지만, 테이블의 PK가 모호하거나 PK가 없는 로그성 테이블일 경우, 특정 행을 구분할 수가 없는데, 이때 오라클 함수 ROWID를 이용하여 구분할 수 있습니다. ROWID란? ROWID PseudoColumn : 테이블의 레코드(행, ROW, RECORD)를 유일하게 구별하는 행의 주소 값으로 테이블에 행이 삽입되면 자동으로 생성된다. 테이블의 행을 액세스하기 위한 가장 빠른 방법으로 사용자 임의로 변경은 불가능 하며 10 bytes로 구성됩니다. ROWID는 의사칼럼으로 DB저장되어 있지는 않지만 SELECT, WHERE절에 사용될 수 있고 INSERT, UPDATE, DELETE등 으로 변경할 수는 없습니다. 유일한 주소값이지만 테이블의 PK(Primary Key) 처럼 사용될 수

Naver Blog

[Oracle/Tibero]데이터 정의어(DDL, Data Define Langauge)

데이터 정의어(DDL) - SCHEMA 정의 - DOMAIN 정의 - TABLE 정의 - VIEW 정의 - INDEX 정의 - ALTER 명령어 데이터 정의어(DDL, Data Define Language) DDL은 DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어입니다. 명령어 기능 CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의 ALTER TABLE에 대한 정의를 변경하는 데 사용 DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제 SCHEMA 정의 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 것으로 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의합니다. # 1. SCHEMA 생성 CREATE SCHEMA 스키마명 AUTHORIZATION 사용자ID; # 2. SCHEMA 삭제 DROP SCHEMA

Naver Blog

[Spring JPA]JpaRepository 기본 사용법

JpaRepository 기본 사용법 - Spring Data JPA - Spring Data JPA 사용하기 - JPA를 사용한 데이터베이스 초기화 - JpaRepository 메소드의 실제 쿼리 확인 · findAll(), findAllById(), · saveAll() · getOne(), findById() · flush(), saveAndFlush() · count(), existsById() · delete, deleteById, deleteAll() · deleteInBatch(), deleteAllInBatch() - 페이징 처리 - QueryByExample 사용법 - update 쿼리 사용법 Spring Data JPA JPA는 인터페이스로서 자바 표준 명세서입니다. 인터페이스인 JPA를 사용하기 위해서는 구현체가 필요한데, 대표적으로 Hibernate, Eclipse Link 등이 있습니다. 하지만 Spring에서는 JPA를 사용할 때 이 구현체들을 직접 다루지

Naver Blog

[JavaScript]난수(랜덤 숫자) 및 문자열 생성하기(Math.random(), 36진수)

JavaScript 랜덤 숫자 및 문자열 생성하기 - Math.random() 메소드 - 두 값 사이의 정수 난수 생성하기(범위 지정) - 랜덤 문자열 생성하기 Math.random() 메소드 Math.random() 함수는 0이상 1미만의 구간에서 근사적으로 균일한 부동소수점 의사난수를 반환하며, 이 값은 사용자가 원하는 범위로 변형할 수 있습니다. ※ Math.random()은 암호학적으로 안전한 난수를 제공하지는 않음 ※ Web Crypto API의 window.crypto.getRandomValues() 메소드를 이용하는 것이 안전 // 0 ~ 1 랜덤 숫자 Math.random(); // 0 ~ 9 Math.floor(Math.random() * 10); // 1 ~ 10 Math.floor(Math.random() * 10) + 1; // 0 ~ 99 Math.floor(Math.random() * 100); 두 값 사이의 정수 난수 생성하기(범위 지정) // min <=

Naver Blog

[Spring JPA]Spring Data JPA 쿼리 메소드(Query Method)

Spring Data JPA 쿼리 메소드(Query Method) - 쿼리 메소드란? - 쿼리 메소드 필터 조건 · 지원되는 접두어 키워드 · 지원되는 쿼리 조건자 키워드 - 쿼리 메소드 예시 - 테스트 코드 작성 - 쿼리 메소드 정렬 및 페이징 처리 · 페이징과 정렬 사용 예제 · 페이징 실행 코드 · 스프링 MVC에서 JPA 페이징 쿼리 메소드란? 쿼리 메소드란 Repository 인터페이스에 간단한 네이밍 룰을 이용하여 메소드를 작성하면 원하는 쿼리를 실행할 수 있습니다. · 메소드 이름으로 쿼리 생성 · 메소드 이름으로 JPA NamedQuery 호출 · @Query 어노테이션을 사용하여 레포지토리 인터페이스에 쿼리 직접 정의 · 스프링 데이터 JPA가 제공하는 특별한 기능 쿼리 메소드 필터 조건 쿼리 메소드를 사용하기 위해서는 Repository 인터페이스에 네이밍 룰에 해당하는 메소드 명으로 메소드를 생성하는 것만으로 원하는 쿼리를 생성할 수 있습니다. ※ 리턴 타입은 v

Naver Blog

[Linux]리눅스 SSH Key 생성하기[비밀번호 없이 SSH 접속하기]

리눅스 SSH Key 생성하기 - SSH Key 만들기 - 퍼미션(Permission) 문제 - SSH 설정 문제 SSH Key 만들기 SSH Key를 통해서 서버에 접속 할 때 Unix 계열(리눅스, 맥)에서는 ssh-keygen이라는 프로그램을 이용하면 됩니다. 윈도우 머신에서는 SSH Client 프로그램이 자체적으로 제공하는 키 생성 프로그램을 이용하면 됩니다. · 공개키 인증으로 SSH 접속시 Password 없이 접속이 가능 · 비밀번호 보다 높은 수준의 보안을 필요로 할 때 사용 · 로그인 없이 자동으로 서버에 접속할 때 사용 1. 키 생성 SSH 키를 저장할 위치를 지정합니다. 엔터를 누르면 기본 경로에 저장됩니다. 기본 경로는 로그인 한 사용자의 홈디렉토리 아래에 .ssh이다. ($HOME/.ssh) SSH Client는 기본적으로 이 디렉토리에 있는 키를 이용해서 인증을 시도합니다. · -t : 어떤 암호화 방식을 사용할 것인지 지정(default: rsa) · 지

Naver Blog

[Linux]리눅스 파일 권한 및 소유자 설정(chmod, umask, chown, chgrp, 파일특수권한)

리눅스 파일 권한 및 소유자 설정 - 파일 및 디렉터리 권한 - 허가권(Permission) - chown 명령어(사용자 및 그룹 소유자 변경) - chgrp 명령어(그룹 소유권 변경) - umask 명령어(접근권한 기본값 설정) - chmod 명령어[파일 접근권한 변경) - 파일 특수 권한(SetUID, SetGID, Sticky-Bit) 파일 및 디렉터리 권한 리눅스는 여러 사용자가 들어와 상요하는 멀티유저 시스템입니다. 따라서 여러 사용자가 들어와 사용하다보면, 서버에 올려진 비밀자료 열람과 그것을 변조, 수정, 삭제할 우려가 높아지게 됩니다. 이 문제를 극복하기 위해 리눅스에 권한(Permission) 이라는 기능이 추가되었습니다. 권한(Permission) 기능으로 사용자들은 자신한테 읽기 퍼미션이 부여된 파일만 읽을 수 있고, 쓰기 퍼미션이 부여된 파일만 쓰기와 수정이 가능하며, 실행 퍼미션이 부여된 파일만 실행이 가능하게 됩니다. · 사용자 부류에 따라 읽기/쓰기/실행

Naver Blog

[Android Studio]안드로이드 기본 위젯 종류 및 기능(TextView, ImageView, Button, EditText)

안드로이드 위젯 종류 및 기능 - TextView 위젯 - ImageView 위젯 - Button 위젯 - EditText 위젯 - ImageButton 위젯 - CheckBox 위젯 - ToggleButton 위젯 - Switch 위젯 - RadioButton 위젯 TextView 위젯 화면에 문자열(텍스트)을 출력하는 위젯으로, 문자열을 출력하거나 다른 위젯의 제목을 표시할 때 사용됩니다. · TextView의 속성은 Button, EditText 등의 파생 클래스에게도 공통적으로 사용됨 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="문자열" android:textSize="30dp" /> 사용 속성 속성 설명 android:text="문자열" 출력할 문자열을 지정합니다. · strings.xml에 문자열을 정의해놓고 id 속성값을 지정하여 사용할 수 있

Naver Blog

[Visual C++]MFC 프로젝트 컨트롤 생성 및 메시지 처리

MFC 프로젝트 컨트롤 생성 및 메시지 처리 - MFC 컨트롤 클래스 · 버튼 컨트롤 생성 · 리스트 박스 생성 · 진행바 생성 - 메시지 처리 선행해야 할 내용 SDI 기초 사용법 : https://blog.naver.com/hj_kim97/222691801025 MFC 컨트롤 클래스 MFC에서는 버튼이나 콤보 박스, 리스트 박스와 에디터 박스 등의 컨트롤들도 MFC 클래스로 구성되어 있어 객체 생성 후 사용하면 쉽게 사용할 수 있습니다. · 버튼(CButton), 리스트 박스(CListBox), 진행바(CProgressCtrl), 콤보 박스(CComboBox), 에디터(CEdit), .. 등 컨트롤 Create() 함수 형식 CButton BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); CListBox BOOL Create( DWORD dwStyle, con

Naver Blog

[Visual C++]MFC 프로젝트 메모장 프로그램 만들기(MDI 방식)

MFC 프로젝트 메모장 프로그램 만들기(MDI 방식) - MDI 프로젝트란? - MDI 프로젝트 생성 - 메시지 처리기 추가 - 메모장 기능 코드 작성 선행해야 할 내용 컨트롤 생성 및 메시지 처리 : https://blog.naver.com/hj_kim97/222692790669 SDI 기초 사용법 : https://blog.naver.com/hj_kim97/222691801025 MDI 프로젝트란? SDI 으용 프로그램은 한 번에 하나의 Document만을 편집할 수 있는 것에 반해 동시에 여러 개의 Document를 열어 놓고 편집할 수 있도록 하는 기능을 제공해 주는 응용 프로그램의 인터페이스를 MDI(Multiple Document Interface).라고 합니다. MDI 응용 프로그램은 한 종류의 Document의 객체를 여러 개 생성하고 여러 개의 View 윈도우를 통해서 각각의 Document 데이터를 편집할 수 있게 해주는 것이 일반적인데, 각기 다른 종류의 Docu

Naver Blog

[MyBatis]org.apache.ibatis.binding.BindingException: Parameter '파라미터명' not found. 에러

에러 내용 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '파라미터명' not found. Available parameters are [arg1, arg0, param1, param2] .. Caused by: org.apache.ibatis.binding.BindingException: Parameter '파라미터명' not found. Available parameters are [arg1, arg0, param1, param2] .. 발생 원인 MyBatis를 이용한 SQL Mapper의 메소드는 하나의 파라미터만을 읽음. 즉, 파라미터의 개수가 2개 이상일 때 발생 발생 예시 - 하나의 파라미터만 읽기 때문에 2개 이상에 파라미터를 주는 경우 해당데이터가 어떤 것인지를 명시하지 않으면 에러 발생 // Mapper

Naver Blog

[Oracle/Tibero]오라클 날짜 검색(Date 타입 컬럼 조회)

1. Date 자료형을 문자열로 변경 후 조회 ※ 비교의 대상이 되는 컬럼을 가공하는 경우 인덱스를 타지 않으니 주의(좌변을 가공 X) -- YYYYMMDD 형식 SELECT * FROM 테이블명 WHERE TO_CHAR(MY_DATE, 'YYYYMMDD') = '20220614'; -- YYYY-MM-DD 형식 SELECT * FROM 테이블명 WHERE TO_CHAR(MY_DATE, 'YYYY-MM-DD') = '2022-06-14'; 2. 문자열을 Date형으로 변경 후 조회 ※ TO_DATE를 이용하여 Date 형의 값을 만들경우 시, 분, 초는 00으로 만들어짐 ※ 때문에 해당 Date 자료인 해당 날짜 조회시 범위를 이용하여 조회 -- 2022-06-14 00:00:00 SELECT TO_CHAR(TO_DATE('2022-06-14'), 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; -- 2022-06-14 23:59:59 SELECT TO_CHAR(TO

Naver Blog

[Spring JPA]JdbcSQLSyntaxErrorException: Syntax error in SQL statement ... expected &quot;identifier&quot; 에러

에러 내용 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "..." expected "identifier"; 발생 원인 테이블 이름을 SQL에 존재하는 키워드 혹은 예약어를 테이블 이름으로 사용할 때 발생합니다. - SQL의 키워드를 테이블명으로 사용 불가 - ex) GROUP, ORDER 발생 예시 // domain @Entity public class Group { .. } // crud @Test void crud() { repository.save(new Group()); } 해결 방안 @Table(name = "이름") 어노테이션 이용 @Entity @Table(name = "GROUP_TBL") public class Group { .. } 출처 POP it, https://www.popit.kr/가짜뉴스아웃-하이버네이트-데이터베이스-스키마/, 2019/08/30 Fwant

Naver Blog

[Spring]Spring Filter(필터) 개념 및 사용법(web.xml, @WebFilter, 스프링 빈, 로깅, 로그인 인증)

Spring Filter 개념 및 사용법 - 필터(Filter)란? - 필터(Filter) 인터페이스 · init 메소드 · doFilter 메소드 · destory 메소드 - 필터(Filter) 사용법 · web.xml을 이용한 방법 · @WebFilter 어노테이션을 이용한 방법 · Spring 어노테이션을 이용한 방법 - 필터(Filter) 응용 예시 · Request Body 내용 읽기(로깅) · 로그인 인증 체크 필터(Filter)란? 필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 URL 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공합니다. 클라이언트로부터 오는 요청(reuqest)과 최종 자원(Servlet/Jsp/기타 문서) 사이에 위치하며 클라이언트의 요청 정보를 알맞게 변경할 수 있으며, 또한 필터는 최종 자원과 클라이언트로 가는 응답(response) 사이에 위

Naver Blog

[Spring]Spring Interceptor(인터셉터) 개념 및 사용법

Spring Interceptor 개념 및 사용법 - 인터셉터(Interceptor)란? - HandlerInterceptor 인터페이스 · preHandle 메소드 · postHandle 메소드 · afterCompletion 메소드 - 인터셉터(Interceptor) 사용법 · *.context.xml 파일을 이용한 방법 · 스프링 어노테이션을 이용한 방법 - 인터셉터(Interceptor) 응용 예제 · 동작 시간 로깅하기 · 로그인 인증하기 인터셉터(Interceptor)란? 인터셉터(Interceptor)는 J2EE 표준 스팩인 필터(Filter)와 달리 스프링이 제공하는 기술로서, 디스패처 서블릿이 컨트롤러 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공합니다. · 필터(Filter)는 웹 컨테이너에서 동작 · 인터셉터(Interceptor)는 스프링 컨텍스트에서 동작 출처 - https://sallykim5087.tistory.com/158 Ha

Naver Blog

[Spring]Spring 트랜잭션(Transaction) 설정 및 개념

Spring 트랜잭션(Transaction) 설정 및 개념 트랜잭션(Transaction)이란? 트랜잭션(Transaction)의 성질 · Atomicity(원자성) · Consistency(일관성) · Isolation(독립성, 격리성) · Durablility(영속성, 지속성) JDBC를 이용한 트랜잭션 Spring이 제공하는 트랜잭션 핵심 기술 · 트랜잭션(Transaction) 동기화 · 트랜잭션(Transaction) 추상화 · AOP를 이용한 트랜잭션(Transaction) 분리 Spring 트랜잭션 설정 및 사용법 · AOP : <tx:advice> 태그를 이용한 방법 · Annotation : @Transactional 어노테이션을 이용한 방법 · AOP : JavaConfig를 이용한 방법 · JavaConfig : @Transactional 어노테이션을 이용한 방법 Spring 트랜잭션 관련 설정 속성 · 트랜잭션 격리 수준 : isolation 속성 ·

Naver Blog

[Java]Java AES 암호화 하기(AES-128, AES-192, AES-256)

Java AES 암호화(AES-128, AES-192, AES-256) 대칭키 암호란? AES 암호화란? 블록 암호 운용 방식 · 전자 코드 북(ECB, Electronic Code Book) 모드 · 암호 블록 연결(CBC, Cipher Block Chaining) 모드 · 암호 피드백(CFB, Cipher FeedBack) 모드 · 출력 피드백(OFB, Output FeedBack) 모드 · 카운터(CTR, CounTeR) 모드 패딩 기법 · PKCS5 · PKCS7 Java AES 암복호화 사용법 · AES 암호화에 필요한 자바 클래스 · AES ECB 모드 사용 예시 · AES CBC 모드 사용 예시 대칭키 암호란? 암호화와 복호화에 하나의 같은 비밀키를 사용하는 암호 방식으로 쉽게 말해, 하나의 키로 암복호화 모두 수행합니다. 암호화와 복호화에 쓰이는 키 크기가 상대적으로 작고 암호 알고리즘 내부 구조가 단순하여, 시스템 개발 환경에 용이하고, 비대칭키에 비해 암호

Naver Blog

[Java]Java RSA 키 생성 및 암복호화 하기(공개키, 개인키)

Java RSA 암호화 하기(공개키, 개인키) 공개키 암호란? RSA 암호화란? Java RSA 암복호화 사용법 · RSA 암호화에 필요한 자바 클래스 · RSA 키 생성 및 암복호화 예시 공개키 암호란? 공개키 암호는 대칭키 암호의 키 전달에 있어서 취약점을 해결하고자 탄생했습다. 공개키와 개인키라는 한 쌍의 키가 존재하며, 개인키는 특정 사람만이 가지고 있고, 공개키는 누구나 가질 수 있습니다. 공개키 암호화 방식은 암호학적으로 연관된 두 개의 키를 만들어서 하나는 자기가 안전하게 보관하고 다른 하나는 상대방에게 공개합니다. 개인키로 암호화 한 정보는 그 쌍이 되는 공개키로만 복호화가 가능하고, 공개키로 암호화한 정보는 그 쌍이 되는 개인키로만 복호화가 가능합니다. · 공개키 : 모든 사람이 접근 가능한 키(공개) · 개인키 : 각 사용자 자신만이 소유하는 키(비공개) · RSA, ElGamal, ECC, 전자서명, .. 등 RSA 암호화란? RSA 암호화는 현재 SSL/T

Naver Blog

[Java]Java MD5, SHA256 암호화 하기(MessageDigest, 단방향 암호화)

Java MD5, SHA256 암호화 하기 단방향 암호화란? MD5(Message-Digest algorithm 5) SHA(Secure Hash Algorithm) Java MD5, SHA 암호화 사용법 · MD5, SHA 암호화에 필요한 자바 클래스 · Java MD5, SHA 암호화 사용 예시 단방향 암호화란? 단방향 암호화(One-Way Encryption)란 한쪽 방향으로만 암호화를 한다는 의미로, 평문을 암호문으로 바꾸는 암호화는 가능하지만, 암호문을 평문으로 바꾸는 복호화는 불가능합니다. 즉, 암호화만 가능하기 때문에 단방향 암호화라고 합니다. · 주로 암호화 해시 함수를 이용한 Hash 암호화 방식을 사용 · 데이터의 진위 여부는 확인하고 싶으나, 본 데이터의 Privacy를 지키고 싶은 경우 사용(ex. 비밀번호, 주민번호) · hash할 때, hash 값은 크기와 알고리즘에 따라 암호문의 결과라 완전 상이함 · 대표적으로 MD5와 SHA 해시 알고리즘이 있음

Naver Blog

[Android Studio]안드로이드 액티비티와 뷰, 뷰그룹, 위젯 / Activity and View, View Group, Widget

액티비티와 뷰, 뷰그룹, 위젯 - 액티비티와 View 개요 - 액티비티(Activity)란? - 뷰(View) - 뷰 그룹(View Group) - 위젯(Widget) - 정리 액티비티와 View 개요 안드로이드 애플리케이션 개발을 처음 시작하게 되면, 용어에 대한 정의에서 굉장히 헷갈리는 부분이 있습니다. 그 중 가장 처음으로 액티비티와 View 그리고 View Group, Widget 등이 나오는데, 안드로이드에서 위젯은 원래 알고 있던 위젯과 다르게 사용되고 있고, 또 액티비티는 앱의 화면을 구성하는 단위로 뷰의 개념과 헷갈리게 설명되어 이해하기가 힘듭니다. 이 포스트에서는 액티비티, 뷰, 뷰 그룹, 위젯이 무엇인지 간단하게 설명하고자 합니다. 액티비티(Activity)란? 액티비티는 사용자에게 UI가 있는 화면을 제공하는 앱 컴포넌트로 애플리케이션 구성요소로서, 일을 하기 위해 상호작용할 수 있는 화면을 제공하고 액티비티마다 창이 하나씩 주어져 이곳에 사용자 인터페이스를 끌어

Naver Blog

[Android Studio]안드로이드 View의 속성 / id, clickable, longClickable, background, padding, layout_margin

View의 속성 - id 속성 : 고유 식별자 - layout_width/layout_height 속성 : 뷰의 크기 - clickable/longClickable 속성 : 클릭 이벤트 여부 - background 속성 : 배경 지정 - padding 속성 : 안쪽 여백 - layouy_margin 속성 : 바깥쪽 여백 - visibility 속성 : 화면 노출 여부 - focusable 속성 : 키보드 포커스 허용 여부 View의 속성 id 속성 : 고유 식별자 xml에서 작성한 뷰들을 조작하기 위해서는 각 뷰들은 고유의 식별자(id)를 가지고 있어야 합니다. 해당 뷰를 유일하게 식별하기 위한 값으로, xml안에 해당 id값을 문자열로 설정하게 되면 어플리케이션이 컴파일될 때 정수로써 레퍼런스 됩니다. · XML 문서에 ID를 지정해 놓으면, R.java에 정수 상수로 정의됩니다. · Java 프로그램이나 XML 문서에서 View를 참조할 때 id 속성을 사용하므로 의미를 잘 설명

Naver Blog

[컴퓨터 보안]방화벽이란 무엇인가?

방화벽이란 무엇인가? - 침입차단 시스템(방화벽, Firewall) - 방화벽의 구성 방식 · 패킷 필터링(Packet Filtering) · 서킷 게이트웨이(Circuit Gateway) · 애플리케이션 게이트웨이(Application Gateway) · 하이브리드(Hybrid) 방식 - 방화벽의 구축 형태 · 스크리닝 라우터(Screening Router) · 단일 홈 게이트웨이(Single-Homed Gateway) · 듀얼 홈 게이트웨이(Dual-Homed Gateway) · 스크린 호스트 게이트웨이(Screened Host Gateway) · 스크린 서브넷 게이트웨이(Screened Subnet Gateway) - 방화벽 구축시 고려사항 침입차단 시스템(방화벽, Firewall) 침입차단 시스템은 방화벽(firewall)이라고도 하는데, 방화벽은 기본적으로 내부 네트워크의 컴퓨터들을 외부로부터 보호하기 위한 보안정책과 이를 수행하는 하드웨어 및 소프트웨어 등 침입차단을 위한

Naver Blog

[Visual C++]MFC 프로젝트 생성 및 SDI 기초 사용법

MFC 프로젝트 생성 및 SDI 기초 사용법 - MFC란 무엇인가? - MFC 프로젝트 생성하기 - MFC 프로젝트 주요 클래스 · HelloMFC.cpp · MainFrm.cpp - 차일드 윈도우 생성하기 - 차일드 윈도우에 문자열 출력하기 - 차일드 윈도우 추가하기 선행해야 할 내용 - Visual Studio 설치하기 : https://blog.naver.com/hj_kim97/222659253958 - 윈도우 프로그래밍 개요 : https://blog.naver.com/hj_kim97/222659201453 MFC란 무엇인가? Visual C++은 Microsoft 사에서 만든 것으로 마이크로소프튿사에서 제공하는 윈도우 응용 프로그램 개발 키트를 통해서 개발하는 방식으로, C/C++ 언어를 이용하여 응용 프로그램을 쉽게 만들 수 있도록 개발 툴을 붙여놓은 것입니다. MFC는 Microsoft Foundation Class의 약자로 마이크로소프트사에서 만든 클래스라고 할 수 있

Naver Blog

[Java]Java Base64 인코딩, 디코딩(encoding/decoding)

Java Base64 인코딩, 디코딩(encoding/decoding) - Base64 인코딩 개요 · 인코딩이란? · 디코딩이란? · Base64 인코딩이란? · Base64 인코딩 과정 - Java Base64 Encode, Decode · Java 8 기본 라이브러리(java.util.Base64) · Apache Commons 라이브러리(org.apache.commons.codec.binary.Base64) · Java 6 기본 라이브러리(javax.xml.bind.DatatypeConverter) Base64 인코딩 개요 인코딩이란? 인코딩(encoding)이란 파일에 저장된 정보의 형태나 형식을 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태로 변환하는 처리 혹은 그 처리 방식을 말합니다. · 문자나 기호들의 집합을 컴퓨터에 저장하거나 통신에 사용할 목적으로 부호화하는 방법입니다. 디코딩이란? 인코딩의 반대 작업으로 복호화라고 하는데, 부호

Naver Blog

[Visual C++]WindowsAPI(WinAPI) 사용법

WindowsAPI(WinAPI) 사용법 - WinAPI 프로그램 개요 - WinAPI 프로그램 흐름 - WinMain 함수 - WinMain 함수 작성 방법 - 윈도우 클래스(WNDCLASS) - 윈도우 생성 : CreateWindow - 화면에 윈도우 보여주기 : ShowWindow - 이벤트와 메시지 처리 - MSG 구조체 - 윈도우 프로시저 - 차일드 윈도우 - 윈도우 컨트롤 - 메시지 박스 - 버튼으로부터 메시지 받기 - 윈도우 프로그램 예제 WinAPI 프로그램 개요 윈도우 프로그램을 개발하기 위해서는 운영체제가 제공해주는 함수를 통해서 개발하는 방식인 C/C++ 언어로 윈도우 API를 호출해서 프로그램을 구현하는 방식과 Visual C++을 통해서 마이크로소프트사에서 제공하는 윈도우 응용 프로그램 개발 키트를 통해서 개발하는 방식이 있습니다. Windows API는 응용 프로그램을 개발할 때 사용할 수 있게 Windows 운영체제에서 제공하는 라이브러리입니다. 이번 포스

Naver Blog

[WAS]Tomcat 기본 가이드 및 폴더 구조

Tomcat 기본 가이드 및 폴더 구조 - Web Server와 WAS · Web Server · Web Application Server(WAS) - Apache Tomcat · 톰캣(Tomcat)이란? · 톰캣(Tomcat) 설치하기 · 톰캣(Tomcat) 폴더 구조 · 톰캣(Tomcat) 주요 설정 파일 · server.xml 태그 설명 · server.xml 기본 설정(포트 변경, 프로젝트 경로 설정) Web Server와 WAS Web Server 웹 브라우저 클라이언트로부터 HTTP 요청을 받고, 정적인 콘텐츠(html, css, .. 등)를 제공하는 컴퓨터 프로그램 · 정적 콘텐츠를 제공하는 서버 · apache, nginx, gws, .. 등 Web Application Server(WAS) 인터넷 상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 동적 서버 콘텐츠를 수행하는 것으로 웹 서버와 구별되며, 주로 데이터베이

Naver Blog

[C언어]C언어 기초 문법 정리[배열, 포인터]

C언어 기초 문법 정리 - 배열(Array) · 배열(Array)이란? · 1차원 배열 · 배열의 초기화 · 다차원 배열 · char형 배열과 문자열 포인터(Pointer) · 포인터(pointer)란? · 포인터 변수의 선언 · 포인터 변수의 참조 · 일반 변수와 포인터 변수의 비교 · void형 포인터 · 포인터 연산 · 포인터와 배열의 관계 · 이중 포인터 배열(Array) 배열(Array)이란? 배열(array)은 같은 타입의 변수들로 이루어진 유한 집합입니다. 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 합니다. C언어에서 인덱스는 0부터 시작하며, 0을 포함한 양의 정수만을 가질 수 있습니다. · 하나의 변수 이름에 순서에 의한 번호를 부여한 자료들의 리스트 · 동일한 자료형을 갖는 자료들의 리스트 · 선언 형태에 따라 1차원, 2차원, 3차원 배열 등으로 구분함 1차원 배열 1차원 배열이란 배

Naver Blog

[C언어]C언어 기초 문법 정리[구조체와 공용체]

C언어 기초 문법 정리 - 구조체(structure) · 구조체란? · 구조체의 필요성 · typedef 키워드 · 구조체 변수의 초기화 · 구조체 멤버의 참조 · 구조체 배열 · 구조체 포인터 - 공용체(union) · 공용체란? 구조체(structure) 구조체란? 구조체(structure)란 서로 다른 자료형을 갖는 자료의 모임을 하나의 자료형으로 정의하여 사용하는 자료형을 말합니다. · 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입 · 배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것 # 구조체 정의 struct 구조체명 { 멤버변수타입 멤버변수명; 멤버변수타입 멤버변수명; .. }; # 구조체 변수의 선언 struct 구조체명 변수명; # 구조체 정의와 구조체 변수 선언을 동시에 하기 struct 구조체명 { 멤버변수타입 멤버변수명; 멤버변수타입 멤버변수명; .. } 구조체변수명; 구조

Naver Blog

[C언어]C언어 파일 입출력[파일 읽기/쓰기]

C언어 파일 입출력[파일 읽기/쓰기] - 파일 입출력 개요 - 파일의 구분 - 파일 입출력 수행 과정 - 파일 입출력 함수 - 파일 입출력 수행 방법 · 1. 파일 포인터 선언 · 2. 파일 열기 · 3. 파일 닫기 - 파일 읽기/쓰기 예제 · 1. 문자 단위 쓰기 · 2. 문자열 단위 쓰기 · 3. 타입지정 쓰기 · 4. 문자 단위 읽기 · 5. 문자열 단위 읽기 · 6. 타입지정 읽기 파일 입출력 개요 파일 입출력이란 파일에 대한 입력과 출력을 의미합니다. 파일에 대한 입력이란 디스크상의 특정 위치에 수록되어 있는 자료를 읽어 들여 기억공간에 수록하는 절차라고 할 수 있고, 파일에 대한 출력이란 기억공간에 있는 자료를 디스크상의 특정 위치에 수록하는 절차라고 할 수 있습니다. C언어에서는 포인터를 사용하여 자료의 입출력을 수행합니다. 즉, 모든 파일 입출력함수는 파일이 어디에 있는지를 가리키는 파일 포인터를 사용하며, 파일 입출력시 디스크에 저장된 자료ㅕ를 기억공간으로 읽ㅅ어 들

Naver Blog

[C언어]C언어 메모리 동적 할당(malloc, calloc, realloc, memcmp, memcpy, memset)

C언어 메모리 동적 할당(malloc, calloc, realloc) - C 언어 기억공간 개요 - 메모리 정적 할당 - 메모리 동적 할당 · 메모리 동적 할당 순서 · malloc() 함수 · calloc() 함수 · realloc() 함수 - 기억공간 관리 · memcmp() 함수 · memcpy() 함수 · memset() 함수 C 언어 기억공간 개요 컴퓨터는 CPU, 주기억장치, 보조기억장치 등으로 구성되어 있습니다. 프로그램은 하드 디스크와 같은 보조기억장치에 저장되어 있다가 프로그램이 시작되면 주기억장치인 RAM에 적재되어 CPU의 연산 장치에 의해 실행됩니다. 즉, 컴퓨터 프로그램의 실행을 위해서는 기억공간이 필요합니다. C 언어를 이용하여 프로그램을 작성할 때 지역변수나 전역변수 등을 선언해 준것도 사용할 기억공간을 확보하는 것입니다. 이와 같이 프로그램엑서 사용하게 될 기억공간을 마련하는 방법에는 크게 메모리 동적 할당과 메모리 정적 할당이라는 두 가지 방법이 있습니

Naver Blog

[컴퓨터 보안]사이버 공격 종류(악성코드, 네트워크 공격)

사이버 공격 종류(악성코드, 네트워크 공격) 악성 코드(Malicious Code, Malware) · 바이러스(Virus, Computer Virus) · 웜(Worm) · 트로이 목마(Trojan Horse) · 바이러스, 웜, 트로이 목마의 특징 비교 · 백도어(Backdoor) · 스파이웨어(Spyware) · 랜섬웨어(Ransom Ware) 네트워크 공격 · 스캐닝(Scanning) · 스푸핑(Spoofing) · 스니핑(Sniffing) · 서비스 거부(DoS, Denial of Service) · 분산 서비스 거부(DDoS, Distributed Denial of Service) 그 외 사이버 공격 · 스팸 메일(Spam Mail) · 피싱(Phishing) 사이버 공격 인터넷을 통해 다른 컴퓨터에 불법 접속하여 상대방 국가나 기업, 개인에 손상을 입히려는 행동을 뜻합니다. 사이버 공격은 악성 코드를 사용하여 컴퓨터 코드, 논리 또는 데이터를 변경하여 데이터를 손상시키고

Naver Blog

[Android Studio]안드로이드 스튜디오 프로젝트 생성 및 폴더 구조 및 초기 설정(SDK Manager, AVD 가상 디바이스)

안드로이드 스튜디오 프로젝트 생성 및 폴더 구조 및 초기 설정 - 프로젝트 생성하기 - 프로젝트 폴더 구조 - Android Studio 초기 설정 · SDK Manager(SDK Playforms, SDK Tools) · 자동 재실행 설정 · AVD Manager(가상 디바이스) 프로젝트 생성하기 1. Android Studio를 실행 후 New Project 클릭 2. 메인 화면을 선택하고, Next 클릭 · Phone and Tablet > Basic Activity > Next · Phone and Tablet : 핸드폰 & 태블릿 · Wear OS : 안드로이드 웨어러블 · Android TV : TV 제품 · Automotive : 자동차 제품 3. 프로젝트에 대한 설정 화면입니다. · Name : 애플리케이션의 이름 · Package Name : 생성할 메인 액티비티(클래스)의 패키지 · Save location : 프로젝트 저장 위치 · Language : 사용할 프로

Naver Blog

[컴퓨터 기초 지식]네트워크 동작 및 구성요소 / NIC, 허브, 스위치, 브릿지, 게이트웨이, 라우터, LAN, MAN, WAN, .. 등

네트워크 동작 및 구성요소 - 네트워크 구성과 동작 · 네트워크란? · 네트워크에서의 정보전달 · 유선 전송 매체의 종류 - 주변에 사용되는 무선통신 기술 · 블루투스 · LTE · UWB · Li-Fi - 네트워크 접속장치 · 네트워크 인터페이스 카드(NIC) · 허브(Hub) · 스위치(Switch) · 브릿지(Bridge) · 게이트웨이(Gateway) · 라우터(Router) - 네트워크의 종류 · LAN · CAN · MAN · WAN 네트워크 구성과 동작 네트워크란? 네트워크는 Net + Work의 합성어로 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 ㅇ통신 이용 형태를 의미합니다. 즉, 몇 개의 독립적인 장치가 적절한 영역내에서 적당히 빠른 속도의 물리적 통신 채널을 통하여 서로가 직접 통신할 수 있도록 지원해주는 데이터 통신 체계를 말합니다. · 그물처럼 서로 연결되어 동작하는 것 · 링크를 통해 서로 간의 회선과 패킷을 교환함으로써 데이터 통신을 함 네트워크에서

Naver Blog

[Java]순수 자바 이해하기 / 명령 프롬프트 실행, 환경 변수, 클래스 패스 설정

순수 자바 이해하기 - 순수 자바 명령 프롬프트로 실행하기 - 클래스패스(classpath)란? - 환경 변수 설정 - JAVA_HOME · 환경 변수란? · Java 명령어 환경변수 등록하기 - 패키지 구조 갖추기 · 패키지 생성 및 실행하기 · jar 파일 생성 및 실행하기 순수 자바 명령 프롬프트로 실행하기 1. 바탕화면에 작업을 진행할 폴더 생성 · 필자는 바탕화면에 "java" 라는 폴더를 생성하였습니다. 2. 메모장으로 Main.java 파일 생성 class Main { public static void main(String[] args) { System.out.println("Hello World!"); } } 3. 명령 프롬프트를 통해 java 파일 컴파일 ※ 현재 java 폴더에 환경 변수를 잡아주지 않은 상태 3-1. java를 다운받은 폴더로 이동 · javac.exe 파일이 bin 폴더에 존재하여 java폴더/bin 폴더로 이동 · cd 폴더경로 3-2. 작성한

Naver Blog

[Android Studio]안드로이드 스튜디오 설치 및 실행하기

안드로이드 스튜디오 설치 및 실행하기 - 안드로이드 스튜디오란? - Android Studio 설치하기 - Android Studio 실행하기 안드로이드 스튜디오란? Android 스튜디오는 Android 앱 개발을 위한 공식 통합 개발 환경(IDE)이며 IntelliJ IDEA를 기반으로 합니다. IntelliJ의 강력한 코드 편집기와 개발자 도구 외에도, Android 스튜디오는 Android 앱을 빌드할 때 생산성을 높여주는 다음과 같은 기능을 제공합니다. · 유연한 Gradle 기반 빌드 시스템 · 빠르고 기능이 풍부한 에뮬레이터 · 모든 Android 기기용으로 개발할 수 있는 통합 환경 · 앱을 다시 시작할 필요 없이 변경사항을 적용하여 실행 중인 앱에 코드 및 리소스 변경사항을 푸시 · 일반적인 앱 기능을 빌드하고 샘플 코드를 가져오는 데 도움이 되는 코드 템플릿과 GitHub 통합 · 광범위한 테스트 도구 및 프레임워크 · 성능, 사용성, 버전 호환성 및 기타 문제를

Naver Blog

[C언어]C언어 기초 문법 정리[제어문, 조건문, 반복문, 함수, 기억클래스]

C언어 기초 문법 정리 - 선택제어문과 반복제어문 · 제어문 · 선택제어문(if / else if / else, switch) : 조건문 · 반복제어문(for, while, do-while) : 반복문 · 기타 제어문(continue, break, goto) - 함수와 기억 클래스 · 함수란? · 표준 함수 · 사용자 정의 함수 · 기억 클래스(storage class) · 유효 범위(지역변수, 전역변수) · 초기화, 존속 기간, 범위(자동변수, 전역변수, 외부변수, 레지스터변수) 선택제어문과 반복제어문 제어문 프로그램은 명령어의 집합입니다. 이러한 명령어는 컴퓨터에 의해 하나씩 순서대로 처리되는데, 경우에 따라서는 명령을 건너뛰기도 해야 하고, 또 어떠한 명령어들은 여러 번 반복하여 수행해야 하는 경.......

Naver Blog

[Visual C++]윈도우 프로그래밍 개요

Visual C++ 윈도우 프로그래밍 개요 - 윈도우 프로그램이란? - 윈도우 프로그램의 특징 - 기초 용어 - 윈도우 프로그래밍 개발 방법 - API란 무엇인가? 윈도우 프로그램이란? 윈도우 프로그램이란 Windows 운영체제에서 실행할 수 있는 응용 프로그램을 말합니다. 윈도우 운영체제에서 구동되는 응용 프로그램으로 사용자에 의해 발생하는 이벤트에 의해 실행이 됩니다. 이는 이벤트 기반, 메시지 기반 프로그래밍이라고도 불립니다. · 윈도우(Window)는 사용자 화면에 표현되는 일부분으로 프로그램이 출력 결과를 내보내고, 사용자로부터 입력을 받아들이고, 독립적으로 동작하는 화면의 일부분을 말합니다. (메뉴바 윈도우, 버튼 윈도우, 스크.......

Naver Blog

[Visual C++]Visual Studio 2022 설치하기(Windows 데스크톱 개발)

Visual C++ Visual Studio 2022 설치하기(Windows 데스크톱 개발) Visual Studio 2022 개요 Visual Studio 2022 설치하기 Visual Studio 2022 실행하기 Visual Studio 2022 개요 비주얼 C++은 마이크로소프트사에서 발표한 언어로, 개발 환경을 통합개발환경(IDE)으로 Windows 운영체제에 저갛ㅂ하게 제작한 것이 비주얼 스튜디오(Visual Studio)입니다. 비주얼 스튜디오는 여러 에디션이 있지만, 커뮤니티(community) 에디션을 사용하여 학생이나 독립된 개인 개발자로 이용에 제한없이 상업용 프로그램을 개발하는 것이 가능하며, 교육, 학술적 연구 수행, 오픈 소스 기여 목적으로 무료로 무제한 이용이 가능합니다. Visual Studio 2022 설치.......

Naver Blog

[Linux]리눅스 크론탭(Crontab) 사용법

리눅스 크론탭(Crontab) 사용법 - 크론(Cron)과 크론탭(Crontab) - craontab 명령어 - 크론탭(Crontab) 파일 작성법 - crontab 변경내용 적용 크론(Cron)과 크론탭(Crontab) Unix 기반의 리눅스 시스템에는 지정된 시간에 맞추어 주기적으로 수행되는 계획된 작업을 수행할 때 cron 서비스를 사용합니다. 보통 cron을 사용하는 목적은 고정된 시간과 날짜 그리고 간격에 따라 주기적으로 예약된 잡들을 실행시키는 데 있으며, 예약된 작업은 셸 명령어들이 주어진 일정에 주기적으로 실행하도록 규정해놓은 crontab(cron table) 파일에 의해서 동작합니다. 실제 cron 서비스는 시스템 부팅후부터 계속 수행되고 있는 crond라는 이름의 데몬 프로.......

Naver Blog

[C언어]C언어 기초 문법 정리[개요, 자료형, 선행처리기, 입출력함수, 연산자]

C언어 기초 문법 정리 - C 언어의 개요 · C 언어의 역사와 특징 · C 프로그램 개발 단계 · C 프로그램 구조 및 특징 · C 프로그램 명칭 규칙 · C 언어 주석 문법 - 자료형과 선행처리기 · 상수와 변수 · 자료형과 변수 선언 · 선행처리기 - 입출력함수와 연산자 · 표준 입출력함수 · 연산자 C 언어의 개요 C언어의 역사 및 특징 C 언어는 1972년 미국 벨 연구소의 데니스 리치(Dennis Ritchie)가 개발한 시스템 기술용 언어로, 유닉스(UNIX)라는 운영체제 개발에 사용할 목적으로 만들어졌습니다. 당시 대부분의 컴퓨터에서 채택한 유닉스 운영체제는 어셈블리 언어로 만들어졌기 때문에 하드웨어의 의존도가 높아 컴퓨터 기종에 따라 프로그램을.......

Naver Blog

[Linux]리눅스 원격 서버 접속 및 파일 전송, 복사(telnet, ftp, rcp, ssh, sftp, scp, OpenSSH)

리눅스 원격 서버 접속 및 파일 전송, 복사 - 전통적인 방식 · 원격 접속 개요 · 원격 접속 : telnet · 원격 파일 전송 : ftp · 원격 파일 복사 : rcp - SSH(Secure Shell) · SSH(Secure Shell) 개요 · OpenSSH 패키지 · 원격 접속 : ssh · 원격 파일 전송 : sftp · 원격 파일 복사 : scp 전통적인 방식 원격 접속 개요 리눅스 시스템은 네트워크를 통해 원격에서 접속하여 다양한 작업을 수행할 수 있도록 여러 가지 방법을 제공합니다. 접속하는 방식과 수행할 수 있는 작업에 따라 telnet, rlogin, rsh, ftp, rcp 등으로 나누어집니다. · telnet, rlogin, rsh, ftp, rcp, .. 등 · 암호화가 되지 않은 데이터를 주고 받기 때문에 도청이나 위변.......

Naver Blog

[Spring JPA]ORM, JPA, Hibernate, Spring Data JPA 개념 정리

ORM, JPA, Hibernate, Spring Data JPA 개념 정리 - ORM(Object-Relational Mapping) · ORM의 장단점 - JPA의 등장과 개념 · JPA 개요 · JPA란 무엇인가? · Hibernate란 무엇인가? · JPA와 Hibernate의 상속 및 구현 관계 · Spring Data JPA란 무엇인가? · Spring Data JPA의 특징 및 장점 ORM(Object-Relational Mapping) ORM은 Object-Relational Mapping의 약자로 객체 관계 매핑을 의미합니다. 의미 그대로 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말합니다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용합니다. 이렇듯이 객체 모델과 관계형 모델 간에 불일치가 존재하.......

Naver Blog

[Python]파이썬 파일 읽기, 쓰기(open, read, write, close, pickle 모듈)

파이썬 파일 읽기, 쓰기(open, read, write, close) - 파일 다루기 - 파일 조작 메소드 - with 구문 - pickle 모듈 - csv 모듈 파일 다루기 파이썬에서는 표준 입출력 함수인 input()과 print() 함수를 사용하여 프로그램과 사용자 사이의 입출력 작업을 수행할 수 있습니다. 그리고 프로그램과 파일 사이의 입출력 즉, 파일에 저장된 내용을 읽고 쓰는 동작은 파일 객체(file object)를 사용하여 수행할 수 있습니다. · 파일을 조작하기 위해서는 파일을 열어야 하는데, open() 함수를 사용하여 파일을 열 수 있습니다. · 파일의 내용을 읽기 위해서는, read(), readline(), readlines() 함수를 사용하여 파일의 내용을 읽을 수 있습니다. · 파.......

Naver Blog

[Python]파이썬 예외처리(try, except, finally, else)

파이썬 예외처리(try, except, finally, else) - try &#38; except - try &#38; except 발생오류 - try &#38; except 발생오류 as 메시지변수 - try &#38; except &#38; else - try &#38; except &#38; else &#38; finally - 예외 발생시키기 (raise) - 예외 만들기 (Exception 상속) - 파이썬 예외 계층도 1. try &#38; except · 오류의 종류에 상관없이 무조건 예외처리 · Exception을 이용하여 모든 오류를 처리할 수도 있음 2. try &#38; except 발생오류 · 오류가 발생했을 때 except문에 미리 정의해놓은 오류 이름과 일치할 때만 except 블록을 수행 · 특정 예외만 처리하기 3. try &#38; except 발생오류 as 메시지변수 · 오류가 발생했.......

Naver Blog

[MyBatis]MyBatis 동적 쿼리 문법 정리(if, choose, trim, where, set, foreach, selectKey)

MyBatis 동적 쿼리 문법 정리 - 동적 SQL - 조건문(if, choose, when, otherwise) - 조건 특화 엘리먼트(trim, where, set) - 반복문(foreach) - 다중 쿼리(selectKey) 동적 SQL MyBatis의 강력한 기능중 하나는 동적 SQL를 처리하는 방법입니다. 동적 SQL이란 상황에 따라 분기 처리를 통해 SQL문을 동적으로 만드는 것입니다. 조건문(if, choose, when, otherwise) 단일 조건 : &#60;if&#62; 다중 조건 : &#60;choose&#62;, &#60;when&#62;, &#60;otherwise&#62; 조건 특화 엘리먼트 동적 SQL : &#60;where&#62; · &#60;where&#62; 내부에는 조건을 표현할 수 있는 &#60;if&#62;나 &#60;choose&#62;가 사용될 수 있습니다. · &#60;where&#62; 내부 코드가 추가되.......

Naver Blog

[Spring]Spring Swagger 사용법 정리(API 문서 자동화하기)

Spring Swagger 사용법 정리(API 문서 자동화하기) - Swagger란 - Swagger 기능 - Swagger 사용법 · 1. 의존성 추가 · 2. Swagger 어노테이션 · 3. Swagger 설정 정보 클래스 · 4. Controller 클래스에 API 명세 정의(어노테이션 이용) · 5. Swagger UI 확인하기 Swagger란 공식사이트 : https://swagger.io/ Swagger(스웨거)는 개발자가 개발한 REST API 서비스를 편리하게 문서화 해주고, 이를 통해서 관리 및 제 3의 사용자가 편리하게 API를 호출하고 테스트할 수 있는 프로젝트입니다. · REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크 · API 정보 현행화(자.......

Naver Blog

[Spring]Spring properties 사용법 정리(@Value, @PropertySource, &lt;context:property-placeholder/&gt;)

Spring properties 사용법 정리 - properties 개요 - properties 사용법 · 1. properties 파일 작성 · 2. properties 파일 불러오기(로드) · Spring Legacy 프로젝트 xml에서 프로퍼티 로드 · Java를 통한 프로퍼티 로드 · 3. properties 값 사용(주입) · 4. properties 값 사용 응용하기(List, Map, random) properties 개요 프로젝트를 진행하다보면 외부에서 특정 값들을 주입받아야 하는 경우가 있습니다. 예를 들어, DB 접속 정보, 메일 계정 정보, API Key, .. 등 이러한 값들을 소스 코드에 하드 코딩한다면, 재사용이 힘들고, 여러 곳에 사용하는데 키값이 변하게 된다면 처리해야 하는 일이 많아집니다. 또한 public 저장소에 저장하는.......

Naver Blog

[jQuery]요소의 조작 - 동적으로 태그 추가하기[append(), prepend(), before(), after(), html()]

jQuery 요소의 조작 - 기존 요소의 내부에 추가 · append(), prepend(), appendTo(), prependTo() - 기존 요소의 외부에 추가 · before(), after(), insertBefore(), insertAfter() - 기존 요소를 포함하는 요소의 추가 · wrap(), wrapAll(), wrapInner() - 기존 요소의 내부 변경 · html(), text() 기존 요소의 내부에 추가 append() 메소드 선택한 요소의 마지막에 새로운 HTML 요소나 콘텐츠를 추가합니다. · 선택한 요소의 마지막에 자식 태그 추가 prepend() 메소드 선택한 요소의 첫번째에 새로운 HTML 요소나 콘텐츠를 추가합니다. · 선택한 요소의 첫번쨰 자식 태그 추가 appendTo() 메소드 선택한 요소를 해당 요소의 마지막에 추가합니.......

1 2 3