본문 바로가기

WIL

(10)
쉘 명령어 동작 과정 (작성중) sequenceDiagramautonumber%% ============== 레이어 구분 ==============box rgb(232, 246, 254) 애플리케이션 영역(사용자 공간) actor User as 사용자 participant Tm as 터미널 에뮬레이터(gnome-terminal 등) participant Sh as 부모 쉘(PID=S) participant Ch as 자식/프로그램(PID=C)endbox rgb(241, 240, 255) 커널 영역(커널 공간) participant SC as 시스템 콜 인터페이스(경계) participant PT as 프로세스 테이블/PCB participant DI as 디바이스 인터페이스(저장장치/콘솔/네트워크 추상)endbox rgb(..
1. 리눅스 커널의 부팅 과정 (레거시) 해당 게시글은 [컴퓨터 부팅과정]을 공부하고 정리한 글입니다.신입의 관점에서 정리한 내용으로, 일부 설명이나 예제가 부족하거나 잘못된 해석이 포함되었을 수 있습니다.혹시 잘못된 부분이나 부족한 내용이 있다면 댓글이나 피드백으로 알려주시면 감사드리겠습니다.1. 리눅스 커널의 부팅 과정 (레거시)1. 전압 공급→ 컴퓨터가 부팅하려면 우선 CPU와 모든 전자 부품에 일정하고 안정적인 직류 전압이 공급되어야 합니다.(1) 사용자가 전원 버튼을 누르면 전기적 신호가 파워서플라이로 전달됩니다.(2) 파워서플라이는 컴퓨터에 들어오는 교류 전류를 직류 전압으로 변환하여 메인 보드와 여러 장치들에 전원을 공급합니다.2. 하드웨어 준비→ 하드웨어가 동작 가능한지 확인하려면 하드웨어 상태를 확인할 프로그램이 필요합니다. 하..
Java 입력 방식 알아보기 Java 입력 방식: Scanner, InputStream, BufferedReader자바에서 콘솔 입력을 처리하는 대표적인 세 가지 방법, InputStream, Scanner, BufferedReader의 동작 원리와 차이점을 상세하게 정리합니다.코딩테스트를 준비하면서 가장 많이 마주치는 환경 중 하나가 콘솔 입력을 빠르고 정확하게 처리하는 상황입니다. 특히 입력 크기가 크거나 시간 제한이 빡빡한 문제에서는 입력 처리 방식에 따라 전체 실행 시간이 달라질 수 있어, 효율적인 입출력 전략이 필수적입니다.이러한 맥락에서 Java의 대표적인 콘솔 입력 방식인 InputStream, Scanner, BufferedReader 세 가지 방법의 동작 원리와 차이점을 직접 비교하고 정리해보고자 했습니다. 단순히 ..
[백준] 10813번 : 공 바꾸기 - JAVA 문제 출처: 백준의 알고리즘[백준] 10810번 : 공 넣기 - JAVA 문제1. 문제 개요바구니 수: N개 (1번~N번)초기 상태: i번 바구니에는 번호 i의 공이 들어있음교환 횟수: M번교환 방법: 매 교환마다 두 바구니 i, j를 선택해 그 안의 공을 서로 맞바꿈출력: 모든 교환이 끝난 뒤 1번~N번 바구니에 어떤 공이 들어있는지 순서대로 공백 구분하여 한 줄에 출력2. 설계 및 클래스 구조2.1. Ball 클래스역할: “공” 객체 하나의 식별자(id)를 보관필드private final int id – 공 번호메서드public int getId() – 공 번호 조회class Ball { private final int id; public Ball(int id) { this.id =..
[백준] 10810번 : 공 넣기 - JAVA 문제 출처: 백준의 알고리즘[백준] 10810번 : 공 넣기 - JAVA 문제 백준의 알고리즘[백준] 10810번 : 공 넣기 - JAVA 문제1. 문제 개요바구니 개수: N개(1번~N번)초기 상태: 모든 바구니는 비어 있음(값 0)작업 횟수: M번한 번 작업연속 구간 i번 바구니부터 j번 바구니까지 선택번호 k인 공을 넣음(이미 공이 있으면 덮어soo99.tistory.com1. 문제 개요바구니 개수: N개(1번~N번)초기 상태: 모든 바구니는 비어 있음(값 0)작업 횟수: M번한 번 작업연속 구간 i번 바구니부터 j번 바구니까지 선택번호 k인 공을 넣음(이미 공이 있으면 덮어쓰기)최종 출력: 1번~N번 바구니에 남아 있는 공 번호를 공백으로 구분하여 한 줄에 출력2. 설계 및 클래스 구조2.1. Baske..
2. List 1. 자료구조의 개념과 필요성자료구조는 데이터를 효율적으로 저장, 관리, 활용하기 위한 조직화된 구조입니다.코딩테스트에서는 주어진 조건에 따라 대용량 데이터를 빠르게 처리하고, 원하는 결과를 도출하는 능력이 관건입니다.따라서 적절한 자료구조를 잘 이해하고 올바르게 선택하는 것은 알고리즘의 시간·공간 효율성과 성능에 직접적인 영향을 미칩니다.2. 배열이란?배열은 한 번 선언할 때 정해진 크기(길이)를 변경할 수 없습니다. 이를 정적 할당(static allocation) 이라고 부릅니다.저장할 데이터 개수가 미리 정해져 있으면, 메모리를 연속적으로 관리하기가 수월합니다.메모리에 연속 배치되기 때문에 인덱스를 통한 임의 접근 속도가 매우 빠릅니다.배열에서 특정 인덱스의 요소를 삭제해도, 그 자리는 비어 있는..
1. 자료구조와 알고리즘 1. 컴퓨터 프로그래밍우리는 프로그램을 통해서 컴퓨터에게 시키고 싶은 일들을 동작 시킬 수 있습니다. 이 프로그램을 만드는 과정을 프로그래밍 혹은 코딩이라고 합니다. 컴퓨터가 이해하고 동작할 수 있도록 하기 위해서 우리는 컴퓨터가 동작할 수 있는 방식으로 프로그래밍을 해야 합니다.우리는 자바 언어를 통해서 프로그래밍을 할 예정입니다. 언어만 알면 프로그래밍을 할 수 있을까요? 물론 할 수 있습니다. 하지만 우리가 컴퓨터를 통해서 하고 싶은 일들을 더 효율적이고 잘 수행되게 하려면 컴퓨터가 일을 처리하는데 유리한 방식으로 프로그래밍 하는 것이 더 좋을 것입니다.그래서 컴퓨터가 처리할 데이터를 어떻게 구성하는지와 어떻게 처리하는지 이해하는 것이 필요합니다. 여기서 데이터를 어떻게 구성하는가에 대한 것이 자료..
3. 좌석 예매 시스템의 ERD 리팩터링 회고록 🧩 왜 ERD를 다시 설계했는가?기존 예매 시스템은 UI나 기능 구현 위주로 설계된 테이블 구조를 가지고 있었습니다.하지만 점차 도메인 로직이 복잡해지고, 여러 기능이 추가되면서 다음과 같은 문제가 발생했습니다:도메인의 책임과 데이터를 구분하기 어렵다.“예약”이라는 개념이 “티켓”이라는 실물 개체에 섞여 표현되어 있어 이해가 힘들다.좌석이라는 중요한 개념이 위치, 등급, 예약 상태로 분산되어 있어서 정합성 유지가 어렵다.“뮤지컬”, “스케줄” 같은 용어는 실제 운영 도메인과 어긋난다.이런 문제는 기능마다 테이블을 새로 추가하면서 쌓인 구조적 빚이었고, 도메인을 중심으로 데이터 모델을 재설계해야 할 시점이었습니다.🔄 기존 구조의 문제점 정리영역문제 설명🎭 공연musical과 schedule이 분리되긴..