12. 텍스트 처리 명령어파일을 지정하지 않으면 표준 입력을 읽음표준 입력을 명시적으로 표현하기 위해 -를 지정하기도 함 wc: 행 수(-l), 단어 수(-w), 바이트 수(-c) 출력wc /ect/passwd# 34 49 1828 /etc/passwdwc -l /ect/passwd# 34 /etc/passwdwc -w /ect/passwd# 49 /etc/passwdwc -c /ect/passwd# 1828 /etc/passwd# 루트 디렉터리의 파일, 디렉터리 수 세기ls / | wc -l# 24 sort: 행 단위로 정렬하여 출력기본값은 알파벳순# -k N: N번째 필드를 ASCII 코드 기준으로 정렬ps x | sort -k # -n: 숫자 값으로 정렬sort -n number.txt# -..
10. 프로세스와 잡10.1 프로세스커널이 명령어 실행 시 메모리에 올린 프로그램 (CPU가 실행)프로세스 ID를 가지며 커널이 이를 관리 새 프로세스는 기존 프로세스를 기반으로 만들어짐(부모 프로세스- 셸, 자식 프로세스- ls 명령어)# 프로세스 목록 확인ps# PID 프로세스 ID# CMD 실행한 명령어 데몬(daemon): 다른 터미널에서 실행 중인 프로세스나 터미널과 무관하게 돌아가는 프로세스 UNIX 옵션: -을 사용하여 옵션 지정BSD 옵션: - 없이 옵션 지정- 유무에 따라 서로 다른 옵션을 실행하기 때문에 주의 필요BSD 옵션의미x명령어를 실행한 사용자의 프로세스 출력(TTY가 ?면 데몬)ux상세하게 출력ax[u]모든 사용자의 프로세스 [상세하게] 출력auxwwaux 옵션 출력 결과가 화..
8. 배시 설정8.1 alias명령어에 별칭 붙이기alias =''# ls에 -F를 기본 옵션으로 부여alias ls='ls -F'# 별칭이 붙은 명령어인지 확인하는 명령어type ls# ls is aliased to `ls --color=auto'# 별칭을 지우는 명령어unalias ls# 일시적으로 별칭을 지우고 본 동작으로 사용하고 싶은 경우# 전체 경로로 명령어 입력/bin/ls# command 명령어 사용command ls# \ 사용\ls 8.2 배시의 옵션옵션 활성화/비활성화하는 명령어 set, shoptset -o/+o # ctrl d 무시(exit)set -o ignoreeof옵션내용ignoreeofctrl d로 인한 셸 종료 방지noclobber이미 존재하는 파일을 리다이렉트로 덮어쓰지 ..
파일텍스트 파일: 메모, 코드, HTML 파일 등바이너리 파일: 이미지, 음성 파일, 리눅스 명령어 파일 Vim: 기본 에디터리눅스 배포판에 기본으로 설치되어 있음# 버전 출력 명령을 통해 설치 여부 확인vim --version# Vim 설치# 우분투apt-get install vim# CentOSyum install vim# 실행vim # 혹은 vi# 새 파일을 만들고 실행하기(저장 전)vim new_file.txt 기본 명령어명령어내용:q종료:q!저장히지 않고 종료:w저장:w [파일 이름]파일 이름을 지정하여 저장i, a입력 모드로 변경(insert mode)i: 현 문자 왼쪽에 위치a: 현 문자 오른쪽에 위치esc입력 모드 종료(normal mode) 이동 명령어명령어내용hbB왼쪽으로 이동이전 단어..
5. 파일 조작의 기본1. mkdir: 디렉터리 생성mkdir [옵션] # 중첩된 디렉터리를 만들 때# 중간 경로 디렉터리가 없는 경우 # -p 옵션 사용하여 만들 수 있음mkdir -p report/2025/082. touch: 파일 생성파일의 타임스탬프를 갱신하기 위한 명령어이나파일이 존재하지 않는 경우 새 파일을 만듦touch [파일명2]3. rm, rmdir: 파일, 디렉터리 삭제rm [옵션] [파일명2] [파일명3]# rm 명령어는 확인하지 않고 바로 삭제함# -i 옵션을 사용하면 확인 메시지 출력rm -i # 디렉터리 내부 파일을 모두 지움rm -r # 빈 디렉터리만 지울 수 있음# 디렉터리 안에 숨겨진 파일을 지우는 것을 방지할 수 있음rmdir 4. cat: 파일 내용 출력cat [옵션..
3. 커맨드 라인 조작# 프롬프트 커맨드 라인 커서$ echo Hello | 1. 커서 이동ctrl b(backward. ←)ctrl f(forward. →)ctrl a 맨 앞ctrl e 맨 뒤 단어 단위 이동meta(esc 혹은 alt)meta b 한 단어 뒤meta f 한 단어 앞 2. 문자 제어ctrl h(backspace) ctrl d(delete) 현재 커서 위치의 한 문자 제거, 아무것도 입력하지 않은 상태라면 bash가 로그아웃됨ctrl w 공백을 만나기 전까지 문자열 제거 ctrl k 커서 위치부터 끝까지 삭제(자르기)ctrl u 커서 위치에서 첫 문자까지 삭제(자르기)ctrl y 마지막으로 지운 내용 삽입(붙여넣기 yank) 3. 문제 발생 시ctrl s 화면 표시 잠금(키보드 입력 안 ..
1장 리눅스 첫 걸음리눅스 커널실제 리눅스는 리눅스 커널을 의미운영 체제의 중심에서 하드웨어를 제어하는 소프트웨어. 사용자 도구, 애플리케이션 미포함 리눅스 배포판보편적으로 사람들이 말하는 리눅스는 리눅스 배포판리눅스 커널 + 기본 명령어 + 애플리케이션 - 레드햇(Red Hat) 계열Red Hat Enterprise Linux, CentOS, Fedora- 데비안(Debian) 계열Debian GNU/Linux, Ubuntu 셧다운실무에서는 셧다운을 잘 실행하지 않음장비 유지보수, 장애 대응 시에만 제한적으로 실행# 슈퍼 사용자로 전환sudo su -# 일반 사용자 프롬프트 기호 $# 슈퍼 사용자 프롬프트 기호 ## 셧다운shutdown -h now# 재부팅shutdown -r now 2장 셸이란 무엇..
14.1 리액트에서 발생하는 크로스 사이트 스크립팅(XSS)웹사이트 개발자가 아닌 제3자가 웹사이트에 악성 스크립트를 삽입해 실행할 수 있는 취약점dangerouslySetInnerHTML prop__html 키(문자열 값)를 가진 객체를 인수로 받아 DOM에 표시script 태그를 넘기는 경우 해당 코드가 실행될 수 있음(브라우저마다 다름) useRef를 활용한 직접 삽입a 태그에 잘못된 herf 삽입onclick, onload 등 이벤트를 활용한 XSS 리액트에서 XSS를 피하는 방법제 3자가 삽입할 수 있는 HTML을 안전한 HTML로 치환(sanitize, escape)- DOMpurify- sanitize-html- js-xss 이러한 치환 과정은 되도록 서버에서 수행하는 것이 좋음서버는 클라이..
12.1 웹사이트와 성능접근성, 속도, 보안 페이지 로드 시간이 0~2초인 페이지가 가장 높은 전환률 달성전체 웹페이지를 표시하는데 필요한 최적의 평균 리소스 요청 수는 50회 미만페이지 로드 시간이 1초에서 10초로 늘어날수록 모바일 사이트 이탈률이 123% 증가 12.2 핵심 웹 지표란?Core Web Vital뛰어난 사용자 경험을 제공하는 데 필수적인 지표 12.3 최대 콘텐츠풀 페인트(LCP: Largest Contentful Paint)DOMContentLoaded 이벤트는 HTML 문서를 완전히 불러오고 파싱했을 때 발생하는 이벤트이지만스타일시트, 이미지, 하위 프레임의 로딩은 기다리지 않기 때문에 해당 이벤트가 발생하더라도 사용자는 로딩 중이라고 인식할 수 있음 최대 콘텐츠풀 페인트는 페이지..
11.1 app 디렉터리 라우팅layout.js페이지 탐색 중에 리렌더링을 수행하지 않음(= props로 searchParams를 받을 수 없음)search parameter만 다르게 라우팅을 시도하는 경우 layout을 리렌더링하는 것이 불필요하기 때문 error.js레이아웃 내부에 에러 바운더리 존재- 클라이언트 컴포넌트여야 함- reset을 props로 받음- 같은 수준의 layout에서 에러가 발생할 경우 상위 error.js로 이동 route.jsHTTP 요청route.js가 존재하는 폴더 내부에는 page.js가 존재할 수 없음 11.2 리액트 서버 컴포넌트11.2.1 기존 리액트 컴포넌트와 서버 사이드 렌더링의 한계서버 사이드 렌더링정적 콘텐츠를 빠르게 제공, 서버에 있는 데이터를 손쉽게 제..

