본문 바로가기

분류 전체보기

(79)
기술면접 대비 1. 운영체제 질문목록 https://chanhuiseok.github.io/posts/cs-3/ [운영체제] 한번에 모아보는 면접대비 운영체제 질문 목록들 면접 전공 지식을 준비하시는 분들을 위해, 운영체제 파트에서 나올만한 문항들을 핵심만 간추려서 정리해 보았습니다. chanhuiseok.github.io
프로세스와 스레드 0. 개요 - 프로세스 : 운영체제로부터 자원을 할당 받은 작업의 단위 - 스레드 : 프로세스가 할당 받은 자원을 이용하는 실행 흐름의 단위 1. 프로세스 프로그램이란? - 컴퓨터에서 실행할 수 있는 파일 (*.exe, *dmg...) - 파일을 실행하지 않은 상태를 정적 프로그램이라고 한다. - 자바, C언어와 같은 프로그래밍 언어의 코드로 작성된 코드 덩어리이다. 프로세스란? - 정적 프로그램을 실행 시켜 동적 프로그래밍으로 변해 컴퓨터가 작업 중인 프로그램을 의미한다. - 모든 프로그램은 운영체제가 실행하기위해 메모리 공간을 할당해 주어야 하기 때문에 프로그램이 실행되는 순간 메모리에 올라가게 된다. - 운영 체제는 시스템 자원 (CPU)를 할당받아 프로그램 코드를 실행시킨다. 프로세스의 한계 - ..
자바에서 스택과 힙 0. 개요 - Java의 메모리 관리 - 스택과 힙 영역 - Wrapper 클래스와 Immutable Object - Garbage Collection 1. 자바의 메모리 관리 자바에서 스택 영역에 할당되는 데이터는 다음과 같다. - 원시 타입 데이터 : 데이터 값이 저장된다. byte, short, int, long, double, float, boolean, char - 참조 타입 변수 : Heap 영역에 생성된 Object 타입 데이터들의 참조 값이 저장된다. 또한 스택 영역에는 지역 변수들이 할당되며 scope에 따른 visibility를 가진다. - 스택 메모리의 top에 존재하는 하나의 스택 프레임만 활성화되어 그 이전에 존재하는 스택 프레임은 모두 비활성화된다. - 즉, 비활성화된 스택 프레..
메모리의 구조 메모리의 구조 : - 프로그램의 실행은 먼저 메모리에 로드 되는 것에서부터 시작됩니다. 또한 프로그램이 사용할 변수들을 저장할 메모리도 필요합니다. 따라서 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있으며 이를 코드 영역, 데이터 영역, 스택 영역, 힙 영역이라 합니다. - 코드 영역 : 프로그램을 실행할 텍스트 코드가 저장되어 있습니다. CPU는 코드 영역의 명령어를 하나씩 가져와 처리합니다. - 데이터 영역 : 프로그램의 전역 변수와 정적 변수가 저장됩니다. 프로그램이 시작 될 때 함께 할당되고 종료될 때 소멸합니다. - 스택 영역 : 함수의 호출과 관련된 지역변수, 매개변수, 반환 주소값이 저장됩니다. 함수의 호출과 함께 할당되고 함수가 완료될 때 소멸합니다. 이러한 함수의 호..
오버헤드, 스택 오버 플로우 참고) overhead란? - 오버헤드는 프로그램 실행 흐름에서 나타나는 현상 중 하나로서 프로그램을 실행하는 도중에 동떨어진 위치의 코드가 실행하여 추가적인 시간, 메모리, 자원을 소요하는 현상이다. - 즉, 오버헤드는 특정 기능을 수행하는데 필요한 간접적 시간, 메모리 자원을 의미한다. 스택 오버 플로우 - 함수를 호출 하면 메모리의 콜 스택 영역에 매개변수, 지역변수, 반환주소값이 저장된다. - 재귀 함수의 경우 차곡차곡 쌓인 콜 스택이 하나 하나 씩 수행 하며 사라진다. - 메모리의 한계까지 콜 스택이 쌓일 경우 자바에서는 StackOverflowError가 발생하고 파이썬에서는 RecursionError가 발생한다. 참고) 콜스택과 프로세스 힙 - 프로그램의 변수는 주로 콜 스택과 프로세스 힙에..
[SQL] 일단 시작해보기 - 가장 자주 쓰는 DML 위주 1. 개요 SQL이란? - Structured Query Language : 구조적 질의 언어 - 관계형 데이터베이스 시스템 (RDBMS)의 자료를 관리, 처리를 위해 고안된 언어 - IBM에서 최초 개발(1970년대)되어 관계형 모델 이론에서 파생됨 - SQL 표준으로 ANSI SQL이 정립됨, 각 DBMS는 ANSI SQL을 기반으로 서로 근소한 차이를 지님 SQL 문법의 종류 - DDL : Data Definition Language, 데이터 정의 언어, 각 릴레이션을 정의함. (CREATE, ALTER, DROP...) - DML : Data Manipulation Language, 데이터 조작 언어, 데이터의 관리(추가/수정/삭제)를 위한 언어 (SELECT, INSERT, UPDATE, .....
[스프링 부트 심화] AOP, Transaction 0. 개요 - AOP 이해하기 - 스프링 예외처리 - DB 트랜잭션 1. 회원 별 사용 시간 측정하기 - 관리자만 사용시간을 조회 - 사용시간의 기준 설정 : 1) 페이지에 머문 시간 -> 동작이 없을 경우 X, 2) 서버 사용시간 -> API 수행시간을 총합 - 사용시간 측정 방법 : 응답을 보낸 시간 - 요청이 들어온 시간 - 구현 방법 : (IntelliJ가 제공하는 임시 연습 코드 File > New > Scratch File) class Scratch { public static void main(String[] args) { // 측정 시작 시간 long startTime = System.currentTimeMillis(); // 함수 수행 long output = sumFromOneTo(1_..
[스프링 부트 심화] JPA 0. 개요 - 백엔드 개발자에게 DB를 다루는 능력은 매우매우 중요합니다. - JPA : 영속성 컨텍스트, 연관관계 - Spring Data JPA : 쿼리 메소드, 페이지 정렬 - 폴더 기능 추가하기 1. JPA 이해 ORM이란? (Object-Relational Mapping) : Object : "객체"지향언어 (자바, 파이썬) - 웹 서버에서 사용 Relational : "관계형" 데이터베이스 (H2, ORACLE, MySQL) - DB에서 사용 Object와 Relational 사이에서 번역을 해주는 것을 ORM 이라고 합니다. 웹 서버를 개발하는 백엔드 개발자와 DB를 관리하는 DBA로 역할이 나뉜 규모가 큰 회사도 있습니다 - ORM 없이도 웹 서버 개발을 할 수 있습니다. 이전에 Repos..