전체 글

/* Sik의 개발 log를 남기는 공간 */
· 알고리즘
버블 정렬(Bubble Sort) 인접한 두 데이터를 비교하여 정렬 (오름차순 기준 - 앞의 데이터가 뒤에 데이터보다 크다면 교환) 정렬 한 턴을 수행할때 마다 해당 턴의 맨 마지막 위치에 정렬이 완료된 데이터가 배치됨 각 턴의 마지막은 턴을 수행할 때마다 한 칸씩 앞으로 온다 한 턴에 Swap이 일어나지 않을 경우 더 이상 정렬할 것이 없는 것이므로 정렬을 중단 선택 정렬(Selection Sort) 한 턴에서 데이터들 중 가장 작은 값을 찾고 각 턴에서 선택된 최소값을 턴의 맨 앞에 데이터와 교체 각 턴의 맨 앞에 데이터는 이미 정렬이 완료된 상태이므로 다음 데이터부터 마지막 데이터까지의 동일한 작업을 수행 삽입 정렬(Insertion Sort) 두 번째 인덱스부터 시작하여 해당 인덱스 값을 앞에 있..
· Linux
Git 사용해보기 - Git bash 설치하기 git을 사용하기 위해 CLI 형태로 제공하는 툴인 git bash를 먼저 설치해보도록 하자 자세한 방법 해당 블로그 참조 - https://code-lab1.tistory.com/249 [Git] 윈도우10(window 10) 깃(Git) 설치하기 - Git 기초(0.5) 윈도우 10(Window 10) 깃(Git) 설치하기 1. Git 설치 파일 다운로드 윈도우 10에서 깃은 공식 홈페이지에서 다운로드할 수 있다. https://git-scm.com/downloads Git - Downloads Downloads macOS Windows Linux/Unix Older releases code-lab1.tistory.com - Git bash 실행 - Gi..
Node.js 자바스크립트는 브라우저의 인터프리터로 작동(스크립트를 해석) -> 브라우저 자체에서 실행이 가능 백엔드에서 실행하긴 위해서 Node.js를 설치해야 한다. Node.js를 설치하면 브라우저가 없이도 자바스크립트가 돌아가는 환경을 만들어 줄 수 있다. npm이란 ? Node Package Manager의 약자로 프레임워크나 자바스크립트로 구현된 다양한 모듈들을 만들어 놓은 곳. 프로그램을 설치하는 것처럼 모듈을 다운받아 사용한다. npm 터미널 명령어 npm init - npm 시작하는 초기화 설정 npm install (패키지이름) - 해당 npm 모듈 설치 (뒤에 -g를 붙이면 global 뜻으로 해당 프로젝트뿐만 아니라 내 컴퓨터 전체에 적용) npm uninstall (패키지이름) -..
트랜잭션의 특성원자성 (Atomicity) - 트랜잭션 실행이 모두 반영되던지, 모두 반영되지 않아야 한다. (commit, rollback)일관성 (Consistency) - 트랜잭션 실행 후에도 데이터베이스의 상태는 유효해야 한다.독립성, 격리성 (Isolation) - 하나의 트랜잭션의 다른 트랜잭션의 영향을 미치면 안된다.영속성 (Durablility) - 연산의 결과는 영구히 보존되어야 한다.  로그 기반 회복 기법REDO - 트랜잭션 로그를 이용하여 오류가 발생한 트랜잭션을 재 실행하여 복구를 수행한다.UNDO - 트랜잭션 로그를 이용하여 오류와 관련된 내용을 취소하여 복구를 수행한다.  데이터베이스 이상현상삽입 이상- 릴레이션에서 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 함께..
네트워크의 AAA (Triple-A) 보안의 3가지 Authentication (인증) - 보안 기능에서, 사람이나 프로세스의 신분을 확인하는 것 Authorization (인가) - 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용하는 것 Accounting (계정관리) - 사용자의 자원에 대한 사용 정보를 모아서 과금, 감사, 용량증설, 리포팅 등을 실시하는 것 스푸핑 (Spoofing) ARP 스푸핑 - MAC주소를 속여 랜에서의 통신 흐름을 왜곡시키는 공격이다. 공격 대상 컴퓨터와 서버 사이의 트래픽을 공격자의 컴퓨터로 우회시켜 패스워드 정보 등 원하는 정보를 획득할 수 있다. IP 스푸핑 - IP 자체의 보안 취약성을 악용한 것으로 자신의 IP주소를 속여서 접속하는 공격 - IP 스푸핑을 통해..
블록암호 알고리즘 AES - 128bit 평문을 128/192/256bit로 암호화 - 키 크기에 따라 10/12/14회 Round 수행 - 1997년 NIST에 의해 제정 - 레인달에 기반한 암호화 방식 - SPN 암호 방식을 사용한다 SEED - 순수 국내기술로 개발한 128비트 및 256비트 대칭키 블록 암호 알고리즘 ARIA - 국가 보안 기술 연구소(NSRI) 필두로 학계, 국가 정보원 등의 암호 기술 전문가들이 개발한 국가 암호화 알고리즘 - AES 알고리즘과 똑같이 128/192/256비트 암호화키를 지원한다. - SPN 암호 방식을 사용한다 IDEA - 1990년 스위스에서 만들어진 PES를 개량하여 만들어진 블록 암호 알고리즘 - 키 길이가 128bit, 블록길이가 64bit - Feis..
소프트웨어 개발에서 사용하는 형상관리 도구의 종류 (형상관리란? - 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것) CVS (Concurrent Version System) SVN (Subversion) GIT 형상 통제 - 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스라인에 반영될 수 있도록 통제 디자인 패턴의 분류 Bridge - 구현부에서 추상층을 분리하여 각자 독립적으로 변형이 가능하고 확장이 가능하도록 한다. 즉 기능과 구현에 대해서 두 개를 별도의 클래스로 구현한다. Observer - 한 객체의 상태가 바뀌면 그 객체의 의존하는 다른 객체들한테 연락이 가고, 자동으로 내용이 갱신되는 방식의 패턴이다. UML 관계 일반화 관계 - 한 클래스가 다른 클래스를 포함하는 상위..
· Spring
쌍용 강북 교육센터 국비학원 Day 89일차 AOP (Aspect Oriented Programming) - 관점(관심) 지향 프로그래밍 AOP(Aspect-Oriented Programming)는 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것이다. ※ AOP는 부가기능을 애스펙트(Aspect)로 정의하여, 핵심기능에서 부가기능을 분리함으로써 핵심기능을 설계하고 구현할 때 객체지향적인 가치를 지킬수 있도록 도와주는 개념이다. Aspect Aspect는 부가기능을 정의한 코드인 어드바이스(Advice)와 어드바이스를 어디에 적용하지를 결정하는 포인트컷 (PointCut)을 합친 개념이다. Advice + PointCut = Asp..
· Spring
쌍용 강북 교육센터 국비학원 Day 88일차 Spring Controller 작성 예제 form 태그 컨트롤러 작성 예제 get 방식일 경우에는 form을 작성하는 view 페이지로 이동하고 해당 view 페이지에서 form을 post로 자기자신한테 submit 하면 컨트롤러에서 post로 받아들여 똑같이 파라미터를 받아올 수 있다. 스프링에서는 전달할 수 있는 파라미터를 객체 한개까지만 받을 수 있어서 (여러개의 데이터를 받지 못한다) VO나 Map을 이용해 데이터를 전달해야 한다. - HashMap 타입으로 매개변수를 받아온 것을 꺼내서 사용할때 - 1. 데이터로 사용할때는 #{key명} 이다 2. 식별자(테이블명, 컬럼명)로 사용할때는 ${key명} 이다 3. myBatis 에서 제공하는 if 엘리..
· Spring
쌍용 강북 교육센터 국비학원 Day 87일차 MVC 패턴을 이용한 JSP 프로젝트 약 3주간의 세미프로젝트가 끝나고 마지막 파이널 프로젝트를 위한 Spring을 배워 적용시키는 시간이다. (길다면 길고 짧다면 짧은시간이었지만 처음으로 JSP를 구현해봤지만 조금 아쉬움이 남는 프로젝트였다. 다음 프로젝트에는 이제 어떻게 설계를 해야하고 어떻게 생각을 하고 구현해야하는지 감각을 느낀 것 같다.) Spring Framework 스프링 프레임워크를 이용한 기본적인 세팅과 구현순서이다. web.xml의 세팅 root-context.xml 세팅 url - DB와 연결할 IP주소 username - 해당 DB의 접속할 유저이름 password - 해당 DB의 접속할 비밀번호 #18. Controller 에서 만들어진..
developer_SIK
dev_log