코딩 도구(309)
-
[IntelliJ] Run Configuration 사용하는 방법
IntelliJ에서 Run Configuration 사용하는 방법 IntelliJ IDEA는 Java 프로그램을 실행할 때 Run Configuration을 사용하여 다양한 설정을 조정할 수 있습니다. 이 글에서는 IntelliJ에서 Run Configuration을 사용하는 방법과, 프로그램 매개변수를 설정하는 법을 소개합니다.Run Configuration이란?Run Configuration은 IntelliJ에서 프로그램을 실행할 때의 설정을 저장하는 기능입니다. 여기에는 다음과 같은 설정이 포함됩니다:Main Class 지정: 실행할 메인 클래스를 설정Program Arguments (프로그램 매개변수): 프로그램에 전달할 인수VM Options (VM 옵션): JVM에 전달할 옵션IntelliJ에..
2025.01.31 -
CS 공부 & 면접 맛보기 0x13 [운영체제] : UNIX 메모리 구조 설명
질문UNIX 메모리 구조에 대해서 설명하시오.면접 답변UNIX 시스템에서 메모리 구조는 Code, Data, BSS, Heap, Stack의 5개 영역으로 구성됩니다. 각 영역은 프로그램의 실행과 메모리 관리에 중요한 역할을 합니다.메모리 구조 구성 요소1. Code (코드 영역)정의: 실행 가능한 기계어 코드가 저장되는 메모리 영역.특징: 읽기 전용, 프로그램이 실행되는 동안 수정 불가능.2. Data (데이터 영역)정의: 전역 변수와 static 변수 중 초기화된 변수가 저장되는 메모리 영역.특징: 프로그램 시작 시 할당, 종료 시 해제.3. BSS (Block Started by Symbol)정의: 전역 변수와 static 변수 중 초기화되지 않은 변수가 저장되는 영역.특징: 실행 시 0으로 초기화..
2025.01.29 -
[MySQL] MacOS PID 파일 오류 해결하기
MySQL PID 파일 오류 해결하기 (MacOS 기준)문제 상황MySQL 서버를 mysql.server stop 명령어로 중지하려고 했지만, 다음과 같은 오류가 발생했습니다:ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/gimmungiui-MacBookPro.local.pid).원인 분석PID (Process ID) 파일은 MySQL 서버의 현재 프로세스를 추적하는 파일입니다. 하지만 비정상 종료나 강제 종료 시 PID 파일이 남아있거나, MySQL 프로세스가 제대로 종료되지 않아 발생할 수 있습니다.해결 과정1. MySQL 프로세스 강제 종료 시도sudo pkill -9 mysqldsudo pkill -9 mysql..
2025.01.28 -
CS 공부 & 면접 맛보기 0x12 [운영체제] : 페이지 교체 알고리즘의 종류 설명
질문페이지 교체 알고리즘이란 무엇인가요?면접 답변페이지 교체 알고리즘(Page Replacement Algorithm)은 메모리 부족 상황에서 페이지를 메모리에 적재할 때, 기존 페이지 중 어떤 것을 제거할지 결정하는 알고리즘입니다. 페이지 교체 알고리즘의 종류1. FIFO (First-In-First-Out)가장 먼저 들어온 페이지를 먼저 제거하는 방식.장점: 구현이 단순하고 직관적.단점: 오래된 페이지가 꼭 불필요한 페이지라는 보장이 없음.2. OPT (Optimal Page Replacement)앞으로 가장 오래 사용되지 않을 페이지를 제거하는 방식.장점: 페이지 부재(Fault)를 최소화함.단점: 미래의 메모리 접근을 예측할 수 없으므로 이론적 알고리즘에 불과함.3. LRU (Least Recen..
2025.01.27 -
[Git] Git 커밋 및 스테이징 문제 해결 가이드 (git rebase, git restore)
Git 커밋 및 스테이징 문제 해결 가이드 (git rebase, git restore)개발을 하다 보면, 특정 파일만 커밋하고 싶은데 실수로 여러 파일이 함께 커밋되었거나, 원격 브랜치와 동기화 오류가 발생할 수 있습니다. 이런 상황을 효과적으로 해결하는 방법을 정리해 보았습니다.상황 설명문제:특정 파일 하나만 커밋하고 싶었으나, 여러 파일이 함께 스테이징되었음.이미 git add . 또는 git commit을 실행한 상태.원격 저장소에 아직 푸시하지 않은 상태이거나, 푸시 후 수정하고 싶은 경우.해결책:불필요한 파일을 스테이징에서 제거하거나, 최근 커밋을 되돌리고 특정 파일만 커밋.특정 파일만 커밋하는 방법1. 특정 파일만 추가하고 커밋하기 (정상적인 상황)# 특정 파일만 스테이징git add cha..
2025.01.26 -
CS 공부 & 면접 맛보기 0x11 [운영체제] : 페이징이란
질문페이징(Paging)이란 무엇인가요?면접 답변페이징(Paging)은 하나의 프로세스가 사용하는 메모리 공간이 연속적이어야 한다는 제약을 없애는 메모리 관리 기법입니다. 도입 이유: 외부 단편화와 압축 작업을 해소하기 위해 고안되었습니다. 동작 방식: 물리 메모리는 프레임(Frame)이라는 고정 크기의 블록으로 나뉩니다. 논리 메모리(프로세스 메모리)는 페이지(Page)라는 고정 크기의 블록으로 나뉩니다. 장점:논리 메모리는 물리 메모리에 연속적으로 저장될 필요가 없음.외부 단편화(External Fragmentation) 해결 가능.남는 프레임에 페이지를 효율적으로 배치.단점:내부 단편화(Internal Fragmentation) 문제 해결 불가.예시: 페이지 크기가 4K..
2025.01.24