제이제이
article thumbnail
컴퓨터 시스템의 동작원리 - Part2
CS/운영체제 2024. 3. 7. 23:23

7️⃣ 하드웨어의 보안 운영체제는 하드웨어의 보안을 위해서 커널모드와 사용자 모드를 지원합니다. ❓ 커널 모드란? 어떤 프로그램이 메모리에 접근하거나, 파일 영역에 접근할 경우 중요한 정보를 보호하기 위해 제공하는 모드입니다. 운영체제가 CPU의 제어권을 가지고 운영체제 코드를 실행할 수 있는 모드로서 모든 종류의 명령어를 실행할 수 있는 모드입니다. ❓ 사용자 모드(유저 모드)란? CPU가 어플리케이션 코드를 실행하는 모드를 의미합니다. 해당 모드에서는 일반 사용자 프로그램이 실행되며, 하드웨어 자원에 직접적으로 접근하는 것이 제한됩니다.

article thumbnail
컴퓨터 시스템의 동작원리 - Part1
CS/운영체제 2024. 3. 7. 23:22

1️⃣ 컴퓨터 시스템의 구조 컴퓨터 시스템의 구조는 컴퓨터 내부 장치인 CPU와 메모리, 컴퓨터 외부 장치인 I/O 장치로 구분됩니다. 컴퓨터 시스템에서는 프로그램이 실행되려면, 해당 프로그램이 컴퓨터 내부 장치인 메모리에 올라가 있어야 실행됩니다. → 해당 작업은 운영체제가 관리하며, 프로그램은 메모리에 로드된 후, CPU에서 작업내용을 실행합니다. 입력(Input) = 컴퓨터 외부장치에서 컴퓨터 내부장치로 데이터가 들어오는 과정을 의미합니다. 출력(Output) = 컴퓨터 내부장치에서 외부장치로 데이터가 나가는 과정을 의미합니다. 컴퓨터 외부 장치인 I/O 장치에서도 마치 컴퓨터의 CPU처럼 해당 작업을 제어하는 디바이스 컨트롤러(Device Controller)가 존재합니다. 또한 I/O 장치에서도..

article thumbnail
운영체제의 개요
CS/운영체제 2024. 3. 7. 23:17

운영체제의 개요 1️⃣ 운영체제 정의 정의 컴퓨터 하드웨어 바로 위에 설치되어, 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 계층입니다. ❓ 커널이란? 컴퓨터 전원을 키면 운영체제는 함께 실행되는데, 메인 메모리에 올라가 있어야 소프트웨어를 실행할 수 있습니다. 이때, 운영체제처럼 큰 프로그램의 모두가 메모리에 올라가는 것이 아닌 필요한 부분만 올라가게 되고, 그렇지 않는 부분은 필요할 때만 메모리에 올려서 사용하게 됩니다. 이때, 전원과 동시에 운영체제에 실행에 꼭 필요한 부분이 메모리에 올라가는 부분을 “커널”이라고 합니다. 2️⃣ 운영체제의 기능 컴퓨터 하드웨어와 사용자 사이에 운영체제가 존재함으로, 운영체제는 다음과 같이 하드웨어를 위한 역할과 사용자를 위한 역할 2가지로 구분할 수 있습..

article thumbnail
인텔리제이 break 포인터 + 디버깅
프로그래밍 언어/IDE 2023. 6. 6. 01:29

안녕하세요. 이번에는 흔히 사용하는 IDE 중 하나인 인텔리제이의 디버깅과 BreakPoint 사용에 대해서 알아봅시다. 🤔 디버깅이란? 디버깅이란 보통 프로그램 내, 오작동 되는 코드를 찾아 고치는 것을 의미합니다. 간단한 스프링 코드를 디버깅을 통해 실행해 봅시다. 🤔 BreakPoint란? 브레이크포인트는 디버깅을 목적으로 실행중인 디버깅 대상 프로세스를 의도적으로 멈추게 하는 장소를 가리킵니다. 이전 살펴본 동일한 spring 코드에 대해서 브레이킹 포인트를 설정하여 살펴봅시다. 👩🏻‍🏫 설명 브레이킹 포인트를 한 결과를 살펴보면 다음과 같습니다. 👩🏻‍🏫 설명 Resume = 다음 break Point로 이동하는 것을 의미합니다. Step Over = 현재 break된 파일의 다음 라인 이동 S..

article thumbnail
JAVA의 빌드툴

안녕하세요. 이번에는 Java의 빌드 툴에 대해서 알아봅시다. 🤔 빌드 툴이란?(Build Tool) 빌드에서는 컴파일, 테스트, 배포 등의 과정이 포함될 수 있고, 빌드 과정을 도와주는 도구를 빌드 툴이라고 합니다. 대표적인 Java의 빌드 툴로는 Ant, Maven, Gradle 등이 있습니다. 🔎 Ant(Apache Ant) 🔎 Maven(Apache Maven) 🔎 Gradle 📒 Reference JAVA의 빌드툴에 대해 알아보자 토이 프로젝트 진행과 TDD에 대해 공부하기 위해 초기 프로젝트 세팅을 해야 했고, 그 과정 가운데 JAVA빌드 툴에 대해 알아야겠다는 생각이 들어 공부를 시작하게 되었다. 기존 알고 있던 빌드 툴 doosicee.tistory.com

article thumbnail
빌드와 컴파일의 차이

안녕하세요. 이번 포스팅에서는 빌드와 컴파일 간의 차이에 대해서 알아보겠습니다. 🤔 빌드란? 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 결과를 의미합니다. 예시 Java 프로젝트 - A.java 파일과 여러가지 정적 파일들이 담겨져 있는 resource가 존재함 IF) 빌드를 하게 될 경우 소스코드를 컴파일해서 .class 파일로 변환하고 resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF들을 하나로 압축하는 과정을 하게 됨 빌드 툴(Build Tool) = 빌드 과정을 도와주는 도구 → 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일 👨🏻‍🏫 추가설명 - 빌드 툴(Build Tool) 빌드에서는 컴파일,..

article thumbnail
JVM 동작 방식

안녕하세요. 이번에는 간단하게 JVM의 동작방식에 대해서 알아보겠습니다. 💁🏻‍♂️ JVM 동작방식 JVM은 클래스 로더(Class Loader) + 런타임 데이터 영역 (Runtime Data) + 실행 엔진(Execution Engine), 가비지 컬렉터(GarBage Collector)로 구성이 되어 있습니다. 👉🏻 런타임 데이터 영역(Runtime Data Area) 런타임 데이터 영역(Runtime Data Area)는 JVM이 프로그램을 수행하기 위해 OS로부터 할당받는 메모리영역입니다. WAS의 성능에 문제가 발생했을 때, 대부분 이 영역들이 원인이 됩니다.(Memory Leak 혹은 GC) +) 👨🏻‍🏫 추가 설명 (왜 Web Application Server)에 성능 문제가 발생했을때, ..

article thumbnail
책너두 스터디 후기
활동들/스터디 2023. 5. 24. 00:51

안녕하세요. sw사관학교 정글 출신 분의 소개로 참여하게된 독서 스터디 “책너두” 스터디 후기 글을 남겨보려고 합니다! 💁🏻‍♂️ 책너두란? “책이 너무 두껍다”라는 줄임말로, 2달 동안 도서 목록 중 온라인으로 함께 완독하는 독서 스터디입니다. 매 기수마다 정해진 도서 목록 중 하나의 책을 선택해서 TIL 같이 온라인 인증을 하는 방식으로 진행됩니다. 저는 해당 책너두 스터디에 2기로 참여하게되었습니다. 📷 책너두 모임 개요 & 2기 도서 목록 😽 해당 스터디의 책 및 스터디 기간 저는 해당 스터디에서 읽어볼 책으로 “컴퓨터 네트워킹 하양식 접근 7판”을 선정하고, 3월 13일 (월) ~ 5월 13일(토)까지 스터디를 진행했습니다. 🤔 스터디 진행 방식 해당 스터디는 매주 월요일에서 토요일로 진행되며,..