본문 바로가기
반응형

분류 전체보기128

2023-03-27 제주도 여행 1일차 (퇴사, 충민정, 용연계곡, 도두봉, 도두봉 해안도로 무지개포토, 그린데이 게스트하우스) 제주도 여행 1일차 퇴사 기념으로 알고 지낸지 18년이 흘러가고 있는 친구와 제주도 여행을 하게되었다. 스케줄은 2주 전부터 조금씩 정리해 놓았었다. 생각보다 '엄청 퇴사다!!!!!!!' 라는 느낌은 없고, 그냥 무감각 했다. 그냥 오랜만에 비행기 타고 제주도에 가니 간만에 쉬는구나~ 라는 생각! 원래는 오도방 렌트를 생각했어서 다음날 오도방 반납을 해야되니 근처에서만 놀기로 했다. 친구가 허리가 아프기도하고, 오토바이는 하루에 8만원(친구랑 각 4만원)이지만 차는 하루에 3만원 초중반대이기 때문에 우리는 차를 하루 더 렌트하기로 하였다. 경로는 그대로! 김포공항🛫 ➡️ 제주공항🛫 (김포 11:45 ➡️ 제주 13:00 ) 무지개 렌트카🚘 (13:30) 무지개 렌트카라는 곳이었는데 제주공항에서 대형버스로.. 2023. 4. 18.
SQL 최적화, SQL 옵티마이저 SQL 최적화 DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정을 'SQL 최적화'라고 한다. SQL을 실행하기 전 최적화 과정을 세분화하면 아래와 같다. SQL 파싱 사용자로부터 SQL을 전달받으면 가장 먼저 SQL 파서(Parser)가 파싱을 진행한다. SQL 파싱을 요약하면 아래와 같다. 파싱 트리 생성: SQL 문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성 Syntax 체크: 문법적 오류가 없는지 확인, 예를 들어, 사용할 수 없는 키워드를 사용했거나 순서가 바르지 않거나 누락된 키워드가 있는지 확인 Semantic 체크: 의미상 오류가 없는지 확인. 예를 들어, 존재하지 않는 테이블 또는 컬럼을 사용했는지, 사용한 오브젝트에 대한 권한이 있는지 확인 SQ.. 2023. 2. 11.
[IT 지식] S/MIME란? S/MIME 개요 전자 우편 보안 SMTP(Simple Mail Transfer Protocol) E-mail 전송 Plaintext Form(Only ASCII text data) binary file은 전송하지 못함 암호화된 메시지 전송 인터넷 전자 메일의 구성 헤더: 메시지 전송과 관련된 주요 정보 본문: 메시지 내용 MIME(Multipurpose Internet Mail Extension) 본문 구성에 대한 정의 텍스트 및 음성, 영상, 문서, 첨부파일 등 메일의 형태로 구성하는 방법에 대한 정의 MIME 객체 S/MIME 기본 구조 및 동작 MIME 헤더 필드 헤더필드 설명 MIME-버전(MIME-version) 메시지가 RFC2045와 2046을 준수(파라미터 값 1.0) 내용-타입(Cont.. 2022. 11. 27.
[DB & SQL] 엔티티 개념과 추출 엔티티 개념과 추출 관계 데이터 모델 관계 데이터 모델은 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성 릴레이션은 테이블 구조를 사용해 데이터를 표현 관계 데이터 모델의 기본 구조 하나의 릴레이션은 데이터 베이스에 표현되는 한 개 엔티티에 관한 정보 저장에 사용 릴레이션은 하나의 객체에 관한 데이터를 2차원 테이블 구조로 표현 ER(Entity-Relationship) 모델 데이터베이스 설계 초기의 개념적 데이터베이스 설계를 쉽게 하기 위한 모델 1976년 피터챈이 제안 ER 모델은 쉽게 관계데이터베이스 모델로 사상이 됨 엔티티 업무수행을 위해 기업이 알아야 할 대상이 되는 사람, 장소, 사물, 사건 및 개념을 의미 각 엔티티는 인스턴스라 불리는 개별적 객체들의 집합을 의미 엔터티로 추.. 2022. 11. 26.
[IT 지식] FTP(File Transfer Protocol)란? (파일 전송 프로토콜의 역사, FTP의 구조에 대한 이해, 데이터 전송용 연결(능동 모드, 수동 모드), FTP의 특징) FTP란? FTP(File Transfer Protocol) 컴퓨터 프로그램이나 데이터의 공유 원격으로 컴퓨터를 사용할 수 있도록 함 다수의 사용자들 간의 파일 공유를 원할하게 함 안정적이고 효과적으로 데이터를 전송 파일 전송 프로토콜의 역사 TCP/IP 이전 NCP 기반에서 구현 (RFC 114) 1980년 TCP/IP 기반 버전 정의 (RFC 765) 1985년 현재의 FTP로 대체됨 (RFC 959) 1994년 방화벽 친화 FTP 수동 모드 활성화 (RFC 1579) 1997년 보안 모드 확장 제한 (RFC 222) 1998년 IPv6지원 추가, 새로운 수동 모드 추가 FTP의 보안 보안 프로토콜로 계획되지 않았음 1999년 RFC 2577에서 취약점 나열 무차별 대입 공격 패킷 가로채기 포트 훔치.. 2022. 11. 25.
[Algorithm] 삼총사 Java Javascript 문제 설명 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다. 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세.. 2022. 11. 12.
[IT 지식] TLS(TLS개요, TLS 주요기능, TLS의 진화과정) TLS TLS 개요 SSL(Secure Socket Layer) 배경: 1993년 웹서버와 브라우저간의 안전한 통신을 위해 Netscape사에 의해 개발됨 특징: 세션 계층에서 적용되며, 응용 계층의 FTP, Telnet, Http 등의 프로토콜의 안전성 보장 지원 프로토콜 HTTP(HTTPS:443), TELNET(TELNET:992), POP3(POPS:995), FTP, NNTP, etc 주요 기능: 서버 인증, 클라이언트 인증, 기밀성 보장 TLS(Transport Layer Security)의 배경 및 특징 배경: SSL 3.0이 표준화된 이후 IETF는 1996년 6월부터 TLS 프로토콜에 대한 표준화(SSL v3.1) 특징: SSL 3.0을 기반으로 한 업그레이드 프로토콜 TLS 주요기능 신.. 2022. 11. 9.
[IT 지식] ICMP(Internet Control Message Protocol)란? (WireShark, ICMP 용도) ICMP(Internet Control Message Protocol) ICMP란? 인터넷 프로토콜 스위트에 기록된 주요 프로토콜 가운데 하나이다. 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는 데 주로 쓰이며 인터넷 프로토콜의 주요 구성원 중 하나로 프로토콜에 의존하여 작업을 수행한다. 프로토콜 번호 1로 할당되고 시스템 사이에 데이터를 교환하지 않거나 최종 사용자에 적용되지 않는다는 점에서 TCP와 UDP와는 다르다. ICMP 용도 IP(Internet Protocol) 동작에 추가적 기능 제공 진단과 제어 오류에 대한 응답 오류에 대한 정보는 소스 IP 주소로 전송 0 ~ 3 3 ~ 7 7 ~ 15 15 ~ 31 Version Number Header Length Service.. 2022. 11. 7.
[IT 지식] 소스코드의 취약점(Black Box Testin, White Box Testing, Gray Box Testing) 소스코드의 취약점 Black Box Testing 방식 소스코드를 보지 않고 웹 애플리케이션의 외부 인터페이스나 구조를 분석하여 취약점을 발견 White Box Testing에 비해 취약점을 찾는 속도가 빠르며 다양한 취약점 찾기 시도 가능 인터페이스 간의 상관관계를 분석하여 취약점이 발생하는 부분 식별 가능(내부가 보이지 않음) 블랙박스 검사는 소프트웨어 검사 방법 줌 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법을 이르는 말임 주로 올바를 입력과 올바르지 않은 입력을 일일이 다 동원하여 올바른 출력을 판별하는 방식으로 검사가 이루어지기 때문에 검사의 진행에 있어 대상이 되는 소프트웨어의 코드나 내부 구조 및 개발 노하우에 대한 정보는 기본적으로 필.. 2022. 11. 2.
[IT 지식] SSL(SSL 개요, SSL 기능, SSL 기본 구조, SSL 세부 구조, Handshake Protocol, Change Cipher Spec. Protocol, Alert Protocol, Record Protocol) SSL SSL 개요 SSL 배경 1993년 웹 서버와 브라우저간의 안정한 통신을 위해 Netscape 사에 의해 개발 특징 세션계층에서 적용되며, 응용계층의 FTP, TELNET, HTTP등의 프로토콜의 안전성 보장 서버 인증, 클라이언트 인증, 기밀성 보장 현황 및 전망 현재 많은 전자 쇼핑 몰 업체에서 채택, 운영 TSL 배경 SSL 3.0이 표준화된 이후 IETF는 1996년 6월부터 TLS 프로토콜에 대한 표준화 (SSLv3.1) Backward compatible with SSLv3 특징 SSL 3.0을 기반으로 한 업그레이드 프로토콜 현황 및 전망 현재 TLS 1.0이 발표, 지속적 개발 예상 SSL 기능 서버 인증 기능 사용자는 서버의 신원을 확인 서버의 certificate와 public .. 2022. 11. 2.
[IT 지식]공개키 인증서(공개키 인증서, 공개키 인증서의 구조, 인증서 취소 목록, CRL의 확장자 영역, 기본 확장자, 개체 확장자) 공개키 인증서 공개키 인증서의 중요성 사용자 식별(인증) 제공 공개키 암호를 이용하는 전자서명 본인 인증 송신자는 자신만이 가지고 있는 개인키와 인증기관에서 인증 받은 공개키, 즉 인증서를 통해 본인임을 입증 무결성 보장 원문의 해쉬값과 전자서명값을 복호화한 해쉬값을 비교함으로서 위,변조 여부를 판단 부인 봉쇄 송신자는 자신만이 가지고 있는 개인키를 이용하여 전자서명을 하였으므로 문서를 전송하지 않았다고 부인 불가 공개키 인증서(Certificate) 사용자의 공개키와 사용자의 ID정보를 결합하여 인증기관이 서명한 문서, 공개키의 인증서를 제공 사용자 확인, 특정한 권한, 능력을 허가하는데 이용, 개인의 신분증 역할 인증기관(CA)은 자신의 개인키를 사용하여 전자서명을 생성하여 인증서에 첨부, CA의 공.. 2022. 11. 2.
[Java] 간단한 파일 쓰기, 읽기 (File, FileOutputStream, FileInputStream, BufferedReader, InputStreamReader) package com.example.test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; public class FileInputOutputTest { public static void main(String[] args) throws IOException { File f = new File("./src/com/example/test/new_file.txt"); FileOutputStream fos = new FileOutputStr.. 2022. 10. 30.
[IT 지식] 암호 알고리즘(암호학, 암호의 3대 기능, 대칭키, 공개키, 해쉬함수, 디지털 서명, 전자 서명, DES, RSA, SEED) 암호학 암호학이란 정보를 보호하기 위해 사용할 수 있는 모든 수학적인 원리, 수단, 방법 등의 기반기술을 말함 암호를 사용하지 않고 궁극적인 정보보호를 성취하는 것은 불가능 암호의 3대 기능 기밀성 암호화 송신자가 데이터의 정보를 보내려고 하는 수신자 이외의 어느 누구도 그 데이터의 정보를 알지 못한다는 것을 보장 무결성 메시지 다이제스트(해쉬) 데이터의 정보가 변경되지 않는 것을 보장 가용성 인증, 접근제어, 보안관리 송신자가 지정한 수신자 외 에 지정되지 않는 수신자는 데이터의 정보에 대한 접근하지 못하게(읽기/쓰기/변경하지 못하게) 하는 것을 보장 암호 프로토콜의 기본 구성/동작 암호프로토콜의 기본 구성 암호화 키와 복호화 키 그리고 데이터 통신을 위한 환경으로 구성 데이터 통신은 프로토콜(통신규약.. 2022. 10. 24.
[Java] 간단한 채팅 소켓통신 (Thread, Runnable, BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter, Socket, ServerSocket) 간단한 채팅 소켓통신 chattingclient project chattingserver project 워크스페이스 하나에 두개의 프로젝트 또는 두 개의 워크스페이스에 각 한개씩의 프로젝트를 생성 chattingclient project ChattingClient.java package chattingclient; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; import java.util.Scanner; class Receiv.. 2022. 10. 23.
[IT 지식] 네트워크 OSI7 Layer의 각 계층별 기능과 Layer별 Switch OSI 7 Layer의 각 계층별 기능 물리계층(Physical Layer) - Layer 1 하드웨어적 전송 규약(물리적 신호) 데이터의 오류 확인 등은 상위 계층에서 진행 기능적 정의는 단순하지만, 정교한 설계가 필요 데이터 링크 계층(Data Link Layer) - Layer 2 point to point간의 신뢰성 있는 전송 보장 MAC Address를 통해 통신 주체간의 결정 전기적 신호에 발생할 수 있는 오류 처리(수정 혹은 재전송 요구 등) 데이터의 흐름 제어 데이터 단위를 Frame 네트워크 계층(Network Layer) - Layer 3 라우팅 기능: 데이터를 목적지까지 빠르고 안정적으로 전송하는 기능(최적 경로) 이 계층에서는 IP 주소를 사용하게 됨(TCP/IP) 데이터 단위는 P.. 2022. 10. 8.
2021-12-26 ~ 2021-12-27 [전라북도 전주] 전주역, 성미당, 풍년제과 수제초코파이, 한옥마을, 경기전, 취향회관, 덕진공원 2021-12-26 ~ 2021-12-27 전주역, 성미당, 풍년제과 수제초코파이, 한옥마을, 경기전, 취향회관, 덕진공원 전주역 아침일찍 일어나 영등포역에서 무궁화호를 타고 전주역에 도착했다. 태어나 처음으로 마주한 전주역은 한옥양식으로 지어서 매우 신기했다. 전주에 왔으니 전주 비빔밥을 먹으러 출발 성미당 렌트를 하지 않았고 버스를 타고 성미당으로 이동했다. 사실 모르고서 왔는데 대통령이 방문한 음식점이라는것을 보고 재미있었다. 맛있었다. 채소들이 많아서 괜히 건강한 기분이 나기도 하고, 사실 직장다니면서 많아 봐야 두, 세 반찬정도의 식사를 먹는데 다양한 반찬이 있어서 좋았다. 18세기 전주지도 지나가는 길에 있어서 찍었다. 풍년제과 수제초코파이 이것도 걸어가는길에 있어서 먹었다. 전주에 오면 먹어.. 2022. 9. 12.
[SpringBoot] HttpSession값 바로 가져오기, 어노테이션 기반 Session 으로 개선하기 기본으로 HttpSession 값 바로 가져오는 방식에서 어노테이션 기반 Session 으로 개선하기 패키지 구조 build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' ver.. 2022. 6. 13.
[SpringBoot] JPA Auditing이란? Auditing example JPA Auditing이란? Auditing example JPA Auditing이란? 어노테이션 기반 감사 메타데이터 엔티티 클래스에 상속 활성화 어노테이션 추가 JPA Auditing이란? 보통 엔티티에는 해당 데이터의 생성시간과 수정시간을 포함합니다. 언제 만들어졌는지, 언제 수정되었는지 등은 차후 유지보수에 있어 굉장히 중요한 정보이기 때문입니다. 그렇다 보니 매번 DB에 삽입하기 전, 갱신하기 전에 날짜 데이터를 등록/수정하는 코드가 여기저기 들어가게 되는데, 이러한 반복적인 코드가 모든 테이블과 서비스 메소드에 포함되는것은 굉장히 불편한 일입니다. Spring Data는 엔티티를 생성하거나 변경한 사람과 발생한 시점을 투명하게 추적하기 위한 정교한 지원을 제공합니다. 해당 기능의 이점을 얻으려.. 2022. 6. 6.
[SpringBoot] 쿼리 로그 확인 application.properties, application.yml build.gradle buildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '2.3.2.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' } group 'com.example.base' version '1.0-SNA.. 2022. 6. 2.
[DB & SQL] SQL 고급활용 및 튜닝 / 고급 SQL 튜닝 SQL 고급활용 및 튜닝 / 고급 SQL 튜닝 소트와 관련된 오퍼레이션 유형 Sort Aggregate 전체 로우를 대상으로 집계를 수행할 때 나타나며, Oracle 실행계획에 sort라는 표현이 사용됐지만 실제 소트가 발생하진 않는다. Sort Order By 정렬된 결과집합을 얻고자 할 때 나타난다. Sort Group By Sorting 알고리즘을 사용해 그룹별 집계를 수행할 때 나타난다. Sort Unique 선택된 결과집합에서 중복 레코드를 제거하고자 할 때 나타난다. Union 연산자나 아래와 같이 Distinct 연산자를 사용할 때가 대표적이다. Sort Join Sort Merge Join을 수행할 때 나타난다. Window Sort 윈도우 함수를 수행할 때 나타난다. Oracle에서 Di.. 2022. 5. 26.
[DB & SQL] SQL 고급활용 및 튜닝 / 인덱스와 조인 SQL 고급활용 및 튜닝 / 인덱스와 조인 Index Range Scan Index Range Scan은 인덱스 루트 블록에서 리프 블록까지 수직적으로 탐색한 후에 리프 블록을 필요한 범위(Range)만 스캔하는 방식이다. Index Skip Scan Index Skip Scan은 루트 또는 브랜치 블록에서 읽은 칼럼 값 정보를 이용해 조건에 부합하는 레코드를 포함할 "가능성이 있는" 하위 블록(브랜치 또는 리프블록)만 골라서 액세스하는 방식이다. Index Full Scan Index Full Scan은 수직적 탐색없이 인덱스 리프블록을 처음부터 끝까지 수평적으로 탐색하는 방식으로서, 대개는 데이터 검색을 위한 최적의 인덱스가 없을 때 차선으로 선택된다. Index Unique Scan Index Un.. 2022. 5. 26.
반응형