-
[ERROR] java.io.IOException: Could not find resource abc.xml (sqlmap namespace 지정 오류)
[ Contents ] 1. 오류 메시지Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.Cause: java.io.IOException: Could not find resource abc.xmljava.io.IOException: Could not find resource abc.xml 서버 기동 시, 특정 경로에 있는 파일을 찾지 못해 뜨는 오류메시지입니다. 해당 오류가 뜨면 서버가 올라가지 않습니다. 2. 원인 및 해결 위 경우에는 sqlmap에 있는 xml를 찾지 못해 뜨는 오류메시지로, 해당 sqlmap의 네임스페이스를 잘못 설정했거나 모체가 되는 xml에 해당 경로가 없을 경우 발생합니다. ..
2024.05.05
-
[FTP] 파일질라(FileZilla) 서버 연결하는 법 [사이트 관리자 계정 로그인]
무료 FTP 파일전송 프로그램인 파일질라에서 기본 설정인 원격 서버 연결하는 방법을 알아봅니다. [ Contents ] 1. 파일질라(FileZilla) 설치 파일질라는 원격 서버로 파일을 전송할 때 사용하는 무료 프로그램입니다. 무료 프로그램이기 때문에, 개인 프로젝트나 회사 내에서 자주 사용합니다. 사용법도 굉장히 쉬운 편이에요. https://filezilla-project.org/ (다운로드 및 설치 링크) 설치는 위 공식 홈페이지에서 운영체제에 맞는 버전을 다운 받아서 설치하면 됩니다. (별도 설정 변경 필요 없음) 2. 원격 서버 연결하기 [사이트관리자 설정] 서버 연결이니, 당연히 서버 탭에 있겠거니... 했지만 초기 설정은 [파일 - 사이트 관리자]에서 하셔야 합니다. 사이트 관리자..
2024.05.01
-
[보안] 개인정보의 안전성 확보조치 기준: 2023년 9월 개정안 주요 변경사항 요약
2023년 9월에 통합 개정된 '개인정보 안전성 확보조치 기준'에 대해서 알아봅니다. [ Contents ] 1. 개인정보처리자로 일원화된 안전성 확보조치- 개인정보처리자: 개인정보의 안전성 확보조치 기준- 정보통신서비스 제공자: 개인정보의 기술적·관리적 보호조치 기준 2023년 9월 개정안이 발표되며, 개인정보처리자와 정보통신서비스 제공자로 이원화되어 있던 안전조치 고시가 통합되었습니다. 사실 '정보통신서비스 제공자'라는 기준이 불명확하긴 했었죠. 개정안 이후부터는 '개인정보처리자'로 일원화되었습니다. 2023.03.31 - [개인정보보호] - [보안] 개인정보 안전성 확보조치 (feat. 개인정보보호법) [보안] 개인정보 안전성 확보조치 (feat. 개인정보보호법)개인정보보호법에 의거한 개인정보 ..
2024.04.30
-
[원격 접속] MSTSC 윈도우 원격으로 연결하는 방법 (원격 데스크톱 연결)
윈도우에는 원격 연결할 수 있는 기능이 내장되어 있습니다. 아래에서 원격 접속하는 방법을 알아봅니다. [ Contents ] 먼저 원격 접속할 PC를 A라고 정하고, 원격접속하는 대상 PC를 B라고 정의합니다. 예를 들어 재택근무를 한다고 하면, A는 가정용 PC이고 B는 사무실 PC가 되는 셈입니다. 1. [원격접속 대상 PC] 원격 데스크톱 설정 먼저 원격접속을 하기 위해서는 원격접속 대상 PC[B]에 미리 설정되어 있어야 합니다. 원격 데스크톱 설정으로 들어가서 '원격 데스크톱 활성화'를 켜줍니다. 추가로 절전모드 설정도 '안함'으로 해주면 좋습니다. PC가 꺼져 있으면 당연히 원격접속이 되지 않겠죠. 원격접속할 때, B 컴퓨터의 IP주소도 필요하므로 미리 알아두면 좋습니다. 명령 프롬프트에 들어가..
2024.03.25
-
[ERROR] ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다
[ Contents ] 1. 오류 메시지 java.sql.SQLException: ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다 2. 원인 MERGE INTO 문에서 USING ON 구문이 여러 행 조회되면서 문제가 발생합니다. MERGE INTO문은 하나의 행을 조회해서 있으면 UPDATE, 없으면 INSERT하는 구문입니다. 따라서 USING ON을 통해 조회되는 데이터는 1개여야 합니다. 3. 해결방안 MERGE INTO TABLE1 A USING TABLE2 B ON (A.PK = B.PK) WHEN MATCHED THEN ... 위와 같이 있는 MERGE INTO 절에서 USING ON으로 조회되는 데이터를 검증합니다. SELECT * FROM TABLE1 A, TABLE..
2024.01.30
-
[Oracle] TRUNC과 GROUP BY 이용한 구간별 통계 조회 쿼리
가격대 별 상품 개수 구하기 예제를 통해서, 구간별로 통계를 구하는 쿼리를 작성해봅니다. 아래 예제에서는 집계함수 COUNT를 사용합니다. [ Contents ] 1. 문제 (링크 참조) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 예제 문제는 프로그래머스 '가격대 별 상품 개수 구하기'를 참조합니다. PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 작성 2. 문제 풀이 GROUP BY 구문은 지정된 칼럼들의 값이 같은 것끼리 묶어서 집계할 수 있도록 해줍니다. 그룹별로 묶어서 통계를 내는 데에 사용하며, 해당 구문의 자세..
2024.01.11
-
[Oracle] 손쉽게 데이터값을 수정하는 명령어 EDIT (Toad for Oracle)
오라클 토드(Toad)에서는 데이터값을 쉽게 바꿀 수 있는 EDIT 명령어를 제공합니다. 기존에는 Update문으로 데이터를 일일이 수정해야 했지만, EDIT 명령어를 통해 GUI환경에서 ROW를 추가하거나 삭제, 복제까지 가능합니다. 해당 EDIT 명령어에 대해 알아봅니다. [ Contents ] 1. EDIT EDIT 수정할 테이블; EDIT 수정할 테이블 WHERE 조건문; EDIT 명령어의 사용법은 간단합니다. 수정할 테이블만 지정해주면 되며, 특정 데이터를 수정하고 싶으면 조건문을 추가하면 됩니다. EDIT 명령어로 조회된 데이터는 더블 클릭 시에 수정이 가능합니다. 수정을 마치고 COMMIT하면 업데이트 내용이 반영됩니다. 2. 행 추가 삭제 +, -로 행을 추가하거나 삭제할 수 있습니다. 테..
2023.12.05
-
[ORACLE] 계층형 쿼리를 활용한 날짜 생성 (CONNECT BY LEVEL 이용)
계층형 쿼리는 흔히 직위나 조직과 같이 계층형 구조를 가진 데이터를 조회할 때 사용합니다. 하지만 계층형 쿼리는 일련의 날짜를 생성하는 데에도 자주 활용됩니다. 이를 날짜 생성에 활용하는 방법을 알아봅니다. [ Contents ] 1. CONNECT BY LEVEL CONNECT BY 조건문 CONNECT BY LEVEL를 잘 이용하면, 반복문 FOR문처럼 순회하며 조회할 수 있습니다. LEVEL이 FOR문의 i 변수라고 생각하시면 되며, 1부터 시작해서 2, 3, 4와 같이 +1씩 오릅니다. SELECT LEVEL, LEVEL*2, LEVEL*LEVEL FROM DUAL CONNECT BY LEVEL
2023.12.05
-
[Eclipse] 체크아웃(Check Out), 체크인(Check In): SVN 형상관리, 협업
이클립스에서 형상관리를 위해 체크아웃, 체크인을 하는 법을 배워봅니다. [ Contents ] 1. 형상관리의 필요성 형상관리 저장소(git 등)를 단순 저장과 버전 관리로만 이용한다면, 굳이 체크아웃과 체크인이 필요하지 않습니다. 특히 혼자서 하는 프로젝트는 커밋(Commit)만 하더라도 충돌이 발생할 일이 없죠. 하지만 여러 명이서 동일한 파일을 수정한다면 문제가 생깁니다. 둘의 변경본을 잘 조정하고 합쳐서 merge할 수도 있겠으나... 대체로 한 사람 빼고는 다 Rollback해야하는 상황이 생깁니다. 이런 상황을 모면하고자, 우리는 체크아웃과 체크인 기능을 사용합니다. 2. 체크아웃 (Check out) 형상관리 저장소의 최신 상태로 갱신 후, 해당 파일의 변경 권한을 얻습니다. [네비게이터 탭..
2023.11.30
-
[보안] 개인정보 보호법 2023년 9월 개정안: 개인정보 전송요구권, 필수동의 생략, 관리감독 강화, 영상정보처리기기/AI 규제, 온오프라인 일원화, 가명정보와 국외이전 규제 강화
2020년 8월에 데이터 3법 시행 및 개인정보 보호위원회가 출범한 후, 개인정보 보호법이 일부 개정되었습니다. 2023년 9월부터 시행되는 개정안에 대해 알아봅니다. [ Contents ] 1. 개인정보 전송요구권(이동권) 정보주체가 자신의 개인정보를 본인 또는 제3자에게 전송 요구할 수 있는 권리 빅데이터 분석, AI 학습에는 많은 데이터가 요구됩니다. 이에 따라 개인정보가 대량 수집 및 유통되고 있으나, 정보주체는 본인정보를 주도적으로 유통 및 활용하는 데에 한계가 있었습니다. 예를 들어 멜론에서 유튜브 뮤직으로 옮겼을 때, 가장 큰 불편함은 새로 재생목록을 생성하고 좋아하는 노래에 다시 ♥ 표시를 해야 한다는 점입니다. 그래야 제대로 된 음악 추천을 받을 수 있죠. 그러나, 이제부터는 자신의 개인..
2023.10.25
-
[Activity] (인프런) 웹 프론트엔드를 위한 자바스크립트 첫 걸음: 수강후기, 정리 및 요약
java script는 HTML, CSS와 함께 동적인 웹페이지를 구현할 때 사용하는 프로그래밍 언어입니다. 자바스크립트를 쉽게 배울 수 있는 인프런 강좌를 소개합니다. [ Contents ] 1. 웹 프론트엔드를 위한 자바스크립트 첫 걸음 웹 프론트엔드를 위한 자바스크립트 첫 걸음 - 인프런 | 강의 웹 프론트엔드 개발자를 희망한다면? 친절하고 꼼꼼한 자바스크립트 강의로 첫걸음을 내딛어보세요✨, 쉽고 자세하게 배우는 자바스크립트🤓나만의 크롬 개발화면까지 뚝딱! 학생 50% 할인 쿠 www.inflearn.com 1. 자바스크립트 기본: 변수와 상수, 지역/전역 변수, 자료형과 형 변환, 연산자, 배열, 조건문, 반복문, 함수 2. 자바스크립트 심화: 스코프, 호이스팅, 함수표현식, 배열과 객체 구조분해..
2023.10.24
-
[Activity] (인프런) 모든 개발자를 위한 HTTP 웹 기본 지식: 수강 후기, 정리 및 요약
HTTP는 Hypertext Transfer Protocol의 약자로, 클라이언트와 서버 간 통신을 위한 프로토콜입니다. 웹 통신 표준 프로토콜으로 어떤 개발자든 기본적으로 알고 있어야 할 지식으로, 이를 배우기 좋은 강좌를 소개합니다. [ Contents ] 1. [인프런] 모든 개발자를 위한 HTTP 웹 기본 지식 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com 1. 인터넷 네트워크: 인터넷 통신, IP, TCP, UDP, PORT, DNS 2. URI와 ..
2023.10.24
-
[Activity] 개인정보보호포털 교육: 고군분투 개인정보보호법 파헤치기, 개인정보 보호법령 위반 예방, 개인정보 안전성 확보조치
개인정보보호 포털은 개인정보보호위원회가 주관하는 교육 포털입니다. 해당 사이트에서 개인정보보호에 관한 다양한 온라인 강의 및 현장 강의를 신청하실 수 있습니다. :: 개인정보보호포털 :: www.privacy.go.kr [ Contents ] 1. 고군분투 개인정보보호법 파헤치기 1) 어서 와! 개인정보 보호법은 처음이지? 2) 개인정보 처리의 시작과 끝 3) 개인정보 보호를 위한 원투 펀치 총 3개의 강좌로 되어 있으며, 교육시간은 70분입니다. 개인정보의 개념부터, 유형, 목적, 특징을 전반적으로 다루며, 개인정보보호법에 대한 기초를 다지기 좋은 강좌입니다. 2023.03.28 - [CS/보안] - [보안] 개인정보의 개념과 유형, 개인정보 보호의 목적과 권리 2023.03.2..
2023.10.24
-
[보안] 서비스 거부 공격의 개념과 종류: TCP SYN Flooding, ICMP Flooding, Tear Drop, Land Attack, (slow) HTTP Get/Post Flooding, cache control Attack
서비스 거부 공격은 공격대상의 시스템(서버)에 과부하를 줘서 정상적인 서비스를 하지 못하도록 만드는 공격입니다. 그 종류는 TCP SYN Flooding, ICMP Flooding, Tear Drop, Land Attack, (slow) HTTP Get/Post Flooding, cache control Attack 등 다양한 취약점을 노린 공격기법이 있으며 이를 아래에서 살펴봅니다. [ Contents ] 1. 서비스 거부 공격 (DoS: Denial of Service) 특정 서비스를 계속 호출하여 CPU, 메모리, 네트워크 등의 컴퓨터 리소스를 고갈시키는 공격 각 서비스는 평균적인 이용자 수, 서비스 이용률에 따라 리소스를 배분합니다. 따라서 갑작스런 서비스 요청이 폭주할 경우, 서버 과부하로 서비..
2023.10.23
-
[네트워크] SMTP 프로토콜: 전자우편(이메일) 전송 표준 (feat. POP3와 IMAP)
SMTP 프로토콜은 전자우편(E-mail) 시스템의 표준 프로토콜입니다. 어떤 방식으로 이메일이 전송되고 수신되는지를 알아봅니다. [ Contents ] 1. SMTP (Simple Mail Transfer Protocol) 인터넷 전자우편 표준 프로토콜[RFC 821]으로서, Store-and-Forward 방식으로 메시지를 전달 SMTP은 쉽게 말해 '메일 박스(Mail Box)'를 구현한 프로토콜입니다. 송신자는 메일 박스에 메일을 저장(Store)하고, 수신자는 메일 박스에서 메일을 꺼내옵니다. (Forward) 2. SMTP 구성요소 MTA(Mail Transfer Agent): 메일을 전송하는 서버 MDA(Mail Delivery Agent): MTA에게 전달받은 메일을 수신자에게 전달 MUA..
2023.10.19
-
[네트워크] TCP/IP 4계층: 네트워크 엑세스, 인터넷, 전송, 응용
TCP/IP 4계층에 대해 알아보고, OSI 7계층과 어떻게 다른지 비교해봅니다. [ Contents ] 1. TCP/IP 4계층 다른 기종 간의 네트워크 연결을 위해서는 '통일된 통신환경 표준'이 필요합니다. TCP/IP 4계층은 OSI 7계층보다 먼저 만들어졌으며, 가장 많이 사용되고 있는 표준입니다. 2023.10.16 - [CS/데이터통신 & 네트워크] - [데이터통신 & 네트워크] OSI 7계층: 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 [데이터통신 & 네트워크] OSI 7계층: 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 OSI 7계층은 국제표준화기구(ISO)에서 정의한 네트워크 표준 규격입니다. 전공자들은 한번쯤은 반드시 들어봤을 법한 상식이지만, 정작 자세히는 ..
2023.10.18
-
[데이터통신 & 네트워크] OSI 7계층: 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용
OSI 7계층은 국제표준화기구(ISO)에서 정의한 네트워크 표준 규격입니다. 전공자들은 한번쯤은 반드시 들어봤을 법한 상식이지만, 정작 자세히는 모르는 경우가 많습니다. 이 글을 통해 자세히 알아봅니다. [ Contents ] 1. OSI 7계층 (Open System Interconnection 7 Layer) 서로 다른 컴퓨터끼리 통신하기 위해서는 '통일된 네트워크 표준'이 필요합니다. OSI 7계층은 통신이 일어나는 과정을 7단계로 구분하여 단계별로 나타냈습니다. 각 계층은 독립적인 모듈로 되어있지만, 상하 계급 구조를 갖고 있습니다. 상위 계층의 프로토콜이 제대로 작동하기 위해서는 반드시 하위 계층이 문제가 없어야 하죠. 물론 독립성은 보장하기 때문에 해당 계층에서의 문제는 해당 계층에서 해결할 ..
2023.10.16
-
[Oracle] PL/SQL 프로시저 FOR LOOP (CURSOR, SELECT문 이용)
CURSOR와 SELECT문을 이용한 FOR LOOP 구문에 대해 알아봅니다. [ Contents ] 1. CURSOR를 이용한 FOR LOOP DECLARE -- 커서 정의 CURSOR cur_emp IS SELECT emp_id, emp_nm FROM emp WHERE dpmt_cd = '20231013'; BEGIN -- 커서를 통한 FOR LOOP FOR emp IN cur_emp LOOP -- 실행문 DBMS_OUTPUT.PUT_LINE(emp.emp_id || ' ' || emp.emp_nm); END LOOP; END; 커서를 이용할 때에는 미리 정의한 후에, FOR문에서 불러와서 사용합니다. 커서에 담은 내용이 여러 번 사용될 때에는 위와 같이 하는 게 좋습니다. 또한 커서 정의에 필요한 ..
2023.10.13
-
[보안] APT 공격의 개념과 단계: 침투, 탐색, 수집/공격, 유출
APT 공격에 대해 알아보고, APT 공격 단계를 살펴봅니다. [ Contents ] 1. APT(Advanced Persistent Threat) 특정 공격대상에게 다양한 공격 기법을 사용해서 지속적으로 공격하는 행위 뉴스기사를 보면 D-Dos 만큼이나 자주 나오는 용어가 APT 공격입니다. 현대의 보안 솔루션을 뚫을려면 당연히 공격대상에 대한 다양한 정보수집과 분석, 공격이 필요하며 이는 지속적인 공격행위에 해당합니다. 그래서 어느 기관이나 기업이 해킹을 당했다면, 이는 APT 공격일 가능성이 99%입니다. 해커들은 방화벽, 백신, 서버 등 다양한 보안 취약점을 공격하며, 특히 '사회공학적 기법'까지 동원합니다. 사회공학적 기법은 사람이 하기 쉬운 실수나 부주의한 행동, 습관을 노려 공격하는 기법을 ..
2023.10.13
-
[보안] 부트 바이러스와 파일 바이러스: 기생형, 겹쳐쓰기형, 산란형, 연결형
바이러스는 감염되는 곳에 따라 '부트 바이러스'와 '파일 바이러스'로 나누어집니다. 각 종류별 바이러스에 대해 알아보도록 하겠습니다. [ Contents ] 1. 부트 바이러스 부트섹터를 감염시켜 컴퓨터 부팅이 되지 않거나, 부팅 시간을 지연시키는 바이러스 부팅(Booting)은 '컴퓨터 전원을 켰을 때, 디스크에 저장되어 있는 운영체제를 메모리로 로딩하는 작업'입니다. 부트 정보를 가지고 있는 디스크 영역을 '부트섹터(Boot Sector)'라고 하며, 부트 바이러스는 부트섹터를 감염시켜 부팅을 방해합니다. 부트바이러스의 예시에는 '브레인 바이러스', '미켈란젤로 바이러스'가 있습니다. 2. 파일 바이러스 COM 혹은 EXE 실행파일을 감염시키는 바이러스로, 크게 4가지 종류가 있습니다. 1) 기생형 ..
2023.10.12
-
[보안] 컴퓨터 바이러스의 개념과 세대별 진화 과정: 원시, 암호화, 은폐형, 갑옷형, 매크로
컴퓨터 바이러스의 개념에 대해서 알아보고, 바이러스가 진화해온 과정을 살펴봅니다. [ Contents ] 1. 컴퓨터 바이러스 (Computer Virus) 정상적인 프로그램이나 데이터를 파괴하는 악성 프로그램 (자기 복제 가능) 컴퓨터 바이러스는 생물학적 바이러스와 마찬가지로, 자기 스스로 복제해서 증식하는 특성을 가지고 있습니다. 그래서 '바이러스'라는 특별한 이름이 붙었죠. 바이러스는 감염된 컴퓨터의 자원을 통해 자기복제하며, 다른 컴퓨터를 감염시킵니다. 2. 세대별 컴퓨터 바이러스 1세대) 원시형 바이러스 (Primitive Virus) 단순하고 코드의 변형이 없이 고정된 크기를 가진 바이러스 단순하고 코드의 변형이 없어 분석이 쉬운 바이러스입니다. 초창기 바이러스로, 주로 주기억장치에 상주하면서..
2023.10.10
-
[보안] CPO의 역할과 책임: 개인정보보호 담당자 지정, 수사 조사 및 보고, 개선 조치 기록 및 보관
CPO는 Chief Privacy Officer의 준말로, 개인정보 보호책임자를 말합니다. CPO는 개인정보보호와 관련하여 막중한 역할과 책임을 수행하게 됩니다. [ Contents ] 1. CPO의 역할 CISO, CIO 등과 협력, 견제하며 효율적이고 체계적인 컴플라이언스(Compliance) 시스템 도입/유지 컴플라이언스(Compliance)는 법규 준수, 준법 감시, 내부 통제 등의 의미를 가지고 있습니다. CPO는 법령이나 규정, 윤리 또는 사회통념에 맞도록 내부통제하는 시스템을 구축하고 유지하는 역할을 수행합니다. 조직 내 CISO, CIO, 변호사 등 업무 관련자와 상호 협력, 보완, 자문, 견제하는 관계를 가지며, 개인정보 보호를 위한 시스템 유지에 중추적인 역할을 수행합니다. 2. CPO..
2023.10.06
-
[보안] CPO의 지위, 자격 및 신분 보장 (ft. 개인정보보호법)
CPO는 조직 내에서 개인정보 보호 및 관리에 대한 책임자입니다. CPO에 대해 알아보고 그 지위와 자격, 신분 보장 지침에 대해서 살펴봅니다. [ Contents ] 1. CPO(Chief Privacy Officer)란? 고객의 개인정보를 사이버범죄로부터 보호하고 관리하는 운영정책을 맡고 있는 전문가 기업 및 기관의 개인정보 관리에 대한 총괄 책임자를 뜻합니다. 경영자 개인정보 문제를 경영 리스크 관리 및 지속가능한 경영 관점에서 바라봄 의사결정권자 개인정보보호와 관련하여 조직 내에서 최종 의사결정권자 역할을 맡음 조정자 개인정보 보호 및 활용에 관련한 조직 내 다양한 요구를 조정할 수 있는 리더십과 설득력 필요 컨설턴트 개인정보보호와 관련한 임직원의 상담과 질문에 답변할 지식과 경험 보유 감독자 임..
2023.10.04
-
[OS] 윈도우 레지스트리(Registry)와 하이브 파일: 시스템 및 프로그램 설정
윈도우 운영체제에서 시스템 및 프로그램 설정 파일을 '레지스트리'라고 합니다. 레지스트리에 대해서 알아보고, 해당 레지스트리의 실제 물리파일인 '하이브'에 대해서 살펴봅니다. [ Contents ] 1. 레지스트리 (Registry) 윈도우 운영체제 및 응용 프로그램 등에 필요한 정보를 저장하고 관리하기 위한 계층형 데이터베이스 윈도우 레지스트리는 Key, Value, Data Type, Data로 이루어진 계층형 데이터베이스입니다. 윈도우 부팅 시 로그인, 서비스, 응용 프로그램 실행, 사용자 행위에 관한 모든 정보를 기록 및 관리합니다. '레지스트리 편집기'를 살펴보시면 시스템 레지스트리를 확인할 수 있습니다. 각 속성별로 상태값을 저장하고 있으며, 해당 레지스트리 값을 통해 시스템을 설정합니다. 따..
2023.10.02
-
[DB] RAID의 개념 및 각 단계별 특징(0~6단계), 조합(RAID 10)
RAID는 여러 디스크를 결합해서 데이터 안전성과 성능을 높이는 기법입니다. 0단계부터 6단계까지 있으며, 이를 조합해서 새로운 단계를 만들기도 합니다. 이러한 RAID 시스템의 각 단계와 특징에 대해서 알아봅니다. [ Contents ] 1. RAID(Redundant Array of Independent Disk) 디스크 고장 시 그대로 복구할 수 있도록 2개 이상의 디스크에 데이터를 저장하는 기법 예전에는 USB 메모리가 1GB, 4GB가 주로 나왔습니다. 지금은 256GB도 2만 원대에 살 수 있더군요. 이처럼 데이터 저장을 위한 디스크는 용량도 많고 쌉니다. 반면 캐시 메모리나 메인 메모리(RAM)처럼 빠른 입출력 속도를 가진 메모리는 용량도 적고 비쌉니다. 그래서 대용량의 데이터를 저장할 때에..
2023.09.29
-
[JS] 자바스크립트 async와 await: 비동기 함수의 작업이 끝날 때까지 대기
자바스크립트의 비동기 함수를 나타내는 async 키워드를 활용하면, await를 통해 쉽게 작업이 끝날 때까지 대기시킬 수 있습니다. 이에 대해 자세히 알아보겠습니다. [ Contents ] 1. promise 객체 const delay = (ms) => { return new Promise((resolve) => { setTimeout(() => { console.log("delay 실행"); resolve(); }, ms); }); }; const start = () => { delay(200).then(() => { console.log("완료"); }); }; start(); promise 객체는 비동기로 실행되는 함수를 담고 있습니다. 위 예제는 promise 객체를 반환하는 delay 함수를 ..
2023.09.27
-
[JS] 자바스크립트 비동기 객체 Promise: resolve - then, reject - catch
자바스크립트에서 비동기 실행을 할 때 사용하는 promise객체에 대해서 알아봅니다. promise 객체는 실행 대기, 실행 성공, 실행 실패 상태를 가지며 각 상태에 따라 다른 콜백함수를 호출합니다. [ Contents ] 1. Callback 지옥 const workA = (value, callback) => { setTimeout(() => { console.log('A실행'); callback(value + 5); }, 500); }; const workB = (value, callback) => { setTimeout(() => { console.log('B실행'); callback(value - 3); }, 300); }; const workC = (value, callback) => { se..
2023.09.27
-
[JS] 자바스크립트 동기와 비동기: 쓰레드(Thread)와 콜백함수(Callback)
자바스크립트의 동기와 비동기 작업에 대해 알아보겠습니다. [ Contents ] 1. 자바스크립트 동기 순차적으로 작업이 실행되는 방식 코드가 실행되는 통상적인 방식입니다. console.log("a"); console.log("b"); console.log("c"); 코드는 위에서부터 아래로 순차적으로 실행됩니다. 그래서 C/C++, java 같은 언어를 '절차형 프로그래밍 언어'라고도 하죠. 2. 자바스크립트 비동기 동시에 여러 작업이 진행되는 방식 비동기 방식은 병렬처리와 일맥상통합니다. 프로그램에서 작업을 처리하는 주체를 '쓰레드(Thread)'라고 하며, 여러 개의 멀티 스레드가 동시에 작업을 처리합니다. 비동기 방식이 동기 방식보다 당연히 효율성과 속도, 성능이 좋습니다. 웹페이지를 불러올 때..
2023.09.25
-
[JS] 자바스크립트 REST: 패킹(Packing), 여러 요소 저장하기
자바스크립트에서 패킹 역할을 하는 REST문법에 대해서 알아보겠습니다. [ Contents ] 1. REST ...개체 spread와 문법이 동일합니다. 다만 spread는 객체나 배열의 요소를 나열하는 언패킹이고, rest는 그 반대로 나열된 요소들을 묶는 패킹입니다. const print = (...rest) => { // rest console.log(rest); }; const numbers = [1, 2, 3, 4, 5, 6]; print(...numbers); // spread 위 예시는 spread로 여러 요소들을 인자로 보내고, rest로 파라미터를 받고 있습니다. 만약 rest를 사용하지 않는다면 아래와 같은 결과가 나옵니다. const print = (rest) => { // rest ..
2023.09.25
-
[JS] 자바스크립트 스프레드(spread): 언패킹(Unpacking), 특정 객체나 배열 요소 나열하기
자바스크립트의 스프레드에 대해서 알아보겠습니다. [ Contents ] 1. 스프레드 (Spread) ...객체/배열 객체나 배열 앞에 ...를 붙여 요소를 풀어쓰는 문법입니다. 다른 언어에서는 언패킹(Unpacking)이라 불리는 문법으로, 데이터 분석에 주로 쓰이는 파이썬이나 스칼라에서 애용하는 문법입니다. const color1 = ["red", "orange", "yellow"]; const color2 = ["blue", "navy", "purple"]; const rainbow = [...color1, "green", ...color2]; console.log(rainbow); 특정 개체의 요소를 ...로 불러올 수 있습니다. const marine = { type: "bionic", pric..
2023.09.25