전체 글 24

[linux] 프로세스 상태 및 명령어

프로세스 상태 이름플래그커널 정의 및 설명실행RTASK_RUNNING : 프로세스가 CPU에서 실행중이거나 실행을 기다리고 있음. 프로세스가 실행 중(또는 실행 가능) 상태일 경우 사용자 루틴 또는 커널 루틴(시스템 호출)을 실행 중이거나 대기열에 추가되어 준비되었을 수 있음.수면STASK_INTERRUPTIBLE : 프로세스가 하드웨어 요청, 시스템 리소스 액세스 등 일부 조건을 대기 중. 조건을 만족하면 Running상태로 복귀.DTASK_UNINTERRUPTIBLE : S와 다른 점은 신호에 응답하지 않음. 프로세스 중단 시 예기치 않은 장치 상태가 발생할 수 있는 경우에 사용KTASK_KILLABLE : 중단되지 않는 D 상태와 동일하지만, 대기 중인 작업이 강제 종료 신호에 응답할 수 있도록 수..

Linux 2025.05.29

[Linux] VIM 편집기 활용

vim은 리눅스, 유닉스 시스템에 포함된 vi 편집기의 개선 버전입니다.vim == vi 라고 생각할 수 있지만, 컬러나 강조 구문, 분할 화면 편집 등 편집 작업을 위한 더 강력한 기능들이 추가되어 있습니다.요즘은 거의 vi 실행하면 vim으로 실행이 되는 경우가 많아서 다르다는 것만 참고하시면 됩니다. 아래 정리한 내용은 제 기준으로 유용할 것 같은 것만 정리한 내용입니다.워낙 내용이 많아서 기억해놓으면 자주 쓸 것만 찾아서 기록했습니다. 모드1. 일반 모드처음 vim을 열때 기본 모드 주요 기능:텍스트, 페이지 이동:w: 단어 단위 앞으로 이동b: 단어 단위 뒤로 이동gg: 파일의 시작으로 이동G: 파일의 끝으로 이동0: 현재 줄의 맨 앞으로 이동$: 현재 줄의 맨 끝으로 이동Ctrl + d: 아래..

Linux 2025.05.15

[Linux] 패턴을 이용한 파일 선택 방법

특정 패턴에 맞게 디렉토리 생성하기 예시1mkdir -p domain/www.{domain1,domain2,domain3}.com/{html,css} domain/ㄴ www.domain1.com ㄴ html ㄴcssㄴ www.domain2.com ㄴ html ㄴcssㄴ www.domain3.com ㄴ html ㄴcss 주의 사항 : {html, css}처럼 콤마 뒤를 띄우면 안됨. 예시2mkdir -p student{1..10} 현재 디렉토리에 student1 ~ student10까지 디렉토리가 생성된다. 보통 컴퓨터에서 범위 표현할 때 반개구간을 쓰니까 1~9가 생성될 거라고 은연중에 생각했는데, 명시한대로 1~10까지 생성된다. 특정 패턴에 맞게 파일 생성하기 예시..

Linux 2025.04.29

[Linux] 링크에 관해 (inode, 하드링크, 심볼릭링크)

inode : 파일에 대한 정보를 가지고 있는 자료구조로, 파일은 무조건 연결된 inode가 존재한다. ls -i-i 옵션을 통해 파일에 대한 inode number (inode 식별자)를 확인할 수 있음. 하드 링크 같은 inode를 공유하는 완전히 동일한 파일을 생성.ln [origin] [linkfile] 하드 링크는 동일한 데이터를 참조하기 때문에 하나의 하드 링크 정보가 변경되면 하드 링크된 다른 모든 파일의 정보가 동일하게 변경됨.원본 파일이 삭제되도, 하드 링크가 된 파일이 존재하면 액세스가 가능함.하드링크는 동일 파일시스템이어야 하고, 디렉토리이면 안된다. 심볼릭 링크 (=소프트 링크)ln -s [origin] [linkfile] 다른 파일 시스템이라도 링크 가능디렉토리나 특수 파일도 ..

Linux 2025.04.25

SOP(Same Origin Policy, 동일 출처 정책)와 CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)

웹 상에서 클라이언트 - 서버 통신 시 인증 정보가 쿠키에 저장되어 HTTP 통신에 사용됩니다. 이 때 악의적으로 클라이언트 권한을 탈취해 HTTP 요청을 보내고 응답을 받아 받을 수 있는데, 이는 보안 위협에 해당합니다. 이를 위해 브라우저에서는 응답 받은 데이터를 악의적인 페이지에서 읽지 못하게 하기 위해 동일 출처 정책(SOP)을 사용합니다. 동일 출처 정책 (SOP, Same Origin Policy) : 현재 페이지 출처가 아닌 다른 출처로부터 온 데이터를 읽지 못하게 하는 브라우저 정책SOP 예시 오리진 (Origin) : 브라우저가 가져온 정보의 출처를 의미합니다. 오리진은 프로토콜, 호스트, 포트가 모두 동일해야 같다고 인정합니다. Origin : https://naver.com/index..

Web 2025.04.17

알아두면 시간을 줄여주는 유용한 리눅스 터미널 단축키 & 커맨드 사용법

리눅스 터미널 조작시 (몰라도 상관은 없지만?)알아두면 유용한 터미널 단축키와 커맨드 조작에 대해 메모 겸 기록합니다.계속 업데이트 예정 이전 명령에 sudo를 붙여야 하는 경우sudo !! history 명령 결과에서 인덱스로 명령어 실행![index]ex) 22 date 이면 !22 입력 시 date 명령 실행 clear 명령어 단축키ctrl + l 이전 명령에서 특정 문자열을 교체해서 실행cat /etc/passwd^passwd^fstab1번 라인 실행 후 2번 라인 실행하면 "cat /etc/fstab" 실행 이전 명령의 인수 불러오기ESC + . ex)cat /etc/passwd 실행 후head (ESC + .) == head /etc/passwd 인수가 여러 개면 마지막 인수를 불러..

Linux 2025.04.17

[파이썬][디자인패턴] 데코레이터 패턴을 이용한 공통 코드 처리

개발을 하다 보면, 중복되는 코드가 있습니다. 이런 중복되는 코드들이 늘어나면 변경이 어렵고 유지보수를 힘들게 만듭니다. 보통 중복된 코드들은 함수나 클래스를 이용해 처리를 하는데요, 여러 함수들 내부가 비슷하게 중복되서 코드가 길어지는 경우가 있습니다. 대표적인 케이스가 try ~ except 문으로 에러를 처리하는 경우입니다. 함수 내부가 비슷한 try문으로 감싸져 있는 경우 디자인 패턴 중 데코레이터 패턴을 활용하여 아래처럼 작성할 수 있습니다.from functools import wrapsdef exception_deco(func): @wraps def wrapper(*args, **kwargs): try: return func(*args, **kwargs)..

Python 2025.04.08

MySQL MMM 구성 - VIP vs DNS

MySQL은 오픈소스 관계형 DBMS로 정말 많이 사용하는 데이터베이스입니다.현재 오라클이 소유하고 있고, 오라클 인수 이후 오픈소스 유지에 대한 불안함으로 나온게 MariaDB입니다. 데이터베이스는 그 성격상 고가용성(HA)이 매우 중요한데, 이를 유지하기 위한 다양한 방안 중에 MMM 구성과이를 구성하기 위한 VIP 방식, DNS 방식을 비교해보겠습니다. MySQL MMM (Multi - Master Replication Manager for MySQL)공식 페이지 : https://mysql-mmm.org/start.html Multi-Master Replication Manager for MySQL [MMM for MySQL Wiki]Multi-Master Replication Manager fo..

Database 2025.04.05

eclipse + gradle + SpringMVC + tomcat 연동 과정 404 에러

보통 제목대로 프로젝트를 생성할 시 1. gradle 프로젝트 생성 2. main/src/webapp/.. 디렉터리 수동 생성 3. build.gradle 에서 Spring 필수 라이브러리 설치 4. web.xml, applicationContext.xml, dispatcher-servlet.xml 설정 (혹은 자바 코드 설정을 이용) 5. 테스트를 위한 jsp와 컨트롤러 생성 6. 톰캣 연동 중간의 순서는 별로 중요치 않지만 1번부터 6번의 과정을 통해 우선 문제없이 실행이 되는지 확인하는데 계속 404 에러가 났다. 404 에러는 클라이언트 요청에 제공할 리소스를 찾지 못했다는 뜻인데 url매핑이 잘 못 됐다거나, jsp 파일이 없거나 혹은 위치가 이상하다거나, 톰캣 설정이 문제 있다거나 굉장히 여러..

Spring 2020.05.26