Study for Backend (91) 썸네일형 리스트형 [Spring Framework] 스프링 프레임워크 Spring Framework - 모든 종류의 배포 플랫폼에서 최신 Java 기반 엔터프라이즈 애플리케이션을 위한 포괄적인 프로그래밍 및 구성 모델을 제공 - 애플리케이션 수준의 인프라 지원 - 동적인 웹 사이트를 개발에 용이 MVC pattern - MVC 패턴은 애플리케이션을 개발할 때 사용하는 디자인 패턴 - 애플리케이션의 개발 영역을 MVC (Model, View, Controller)로 구분하여 각 역할에 맞게 코드를 작성하는 개 발 방식 - MVC 패턴을 도입하면서 UI 영역과 도메인(비즈니스 로직) 영역으로 구분되어 서로에게 영향을 주지 않으면서 개발과 유지보수가 가능 - MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, View는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스.. [컴퓨터 공학] Thread (스레드) 1. Thread - 하나의 프로세스에 여러개의 스레드 생성 가능 - 스레드들은 동시에 실행 가능 - 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능 (Light Weight Process) - 각 개별적인 Stack 을 갖고 있음 - 성능개선이 가능하며 사용자에 대한 응답성 향상 - IPC를 별도 사용하지 않아 자원 공유 효율이 좋음 - 스레드 중 한 스레드만 문제가 있어도 전체 프로세스가 영향을 받음 - 스레드를 많이 생성하면 Context Switching도 빈번해져서 성능이 저하될 수 있음 - 동기화 이슈로 비정상적으로 동작할 수 있음 Sychronization Issue (동기화 이슈) - 여러 스레드가 동일한 자원 (데이터) 접근시 작업들 사이에 실행시기를 맞추는 부분에서 이슈 발.. [컴퓨터 공학] 스케줄링 알고리즘 1. Scheduling Algorithm - 언제 어떤 프로세스에 CPU를 할당할지 결정하는 작업 2. Non-Preemptive SJF (Shortest Job First) - 최단 작업 우선 스케줄링은 평균 대기 시간을 최소화하기 위해 CPU 점유 시간이 가장 짧은 프로세스에 CPU를 먼저 할당 - 평균 대기시간을 최소로 만드는 걸 최적으로 두고 있는 알고리즘 - 요구 시간이 긴 프로세스가 요구 시간이 짧은 프로세스에게 항상 양보되어 기아 상태가 발생할 수 있음 - 대기 상태에 있는 프로세스의 요구시간에 대한 정확한 자료를 얻기 어려움. - 단기 스케줄링 보다는 장기 스케줄링에 유리 FCFS (First Come First Serve) - 선입 선처리 스케줄링은 먼저 자원 사용을 요청한 프로세스에게.. [컴퓨터 공학] 프로세스 1. Process - 운영 체제에서 프로세스는 실행 중인 프로그램의 인스턴스 - 운영 체제에서 예약하고 실행할 수 있는 기본 작업 단위 Code image (Binary) - 실행 파일 2. Process Scheduling 배치 처리 시스템 (Batch Processing) - 여러 프로그램을 순차적으로 실행시키기 위한 프로세싱 시분할 시스템 (Time-Sharing System) - 하나의 컴퓨터 시스템을 복수의 사용자가 동시에 대화식으로 사용하는 이용 형태 - 중앙 처리 장치(CPU)의 처리 시간을 아주 짧게 세분화하여 각 사용자의 프로그램에 할당하여 차례차례로 복수의 처리를 실행 (각 사용자는 마치 컴퓨터를 독점하고 있는 것처럼 사용) - 일반적으로 복수의 사용자가 대형 컴퓨터와 접속하여 사용하.. [컴퓨터 공학] 운영체제 운영체제 (Operating Systems , OS) - 사용자의 하드웨어, 시스템 리소스 (Hardware) 를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어 - 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할 - 응용프로그램 제어 (소프트웨어를 응용프로그램이라고 함) - 일반적으로 커널에 여러가지 기능이 추가된 상태 Kernel - 운영체제의 핵심이라 할 수 있는 매우 중요한 소프트웨어로 하드웨어의 자원을 자원이 필요한 프로세스에 나눠주고, 덩달아 프로세스 제어(작업 관리), 메모리 제어, 프로그램이 운영 체제에 요구하는 시스템 콜 등을 수행하는 부분이며 운영 체제의 가장 아래 계층에서 돌아감 - 현재 많이 사용되고 있는 운영 .. [컴퓨터 공학] 메모리 Memory Register CPU 안에서 데이터 보관 SRAM (Static RAM) - Flip-flop (F/F)으로 작동하는 방식 - 전류 신호가 오기 전까지는 상태가 변화하지 않아 안정적임 (단, RAM자체는 휘발성이라 전원을 끄면 사라짐) - L1, L2, L3 캐쉬 포함 (최대한 가장 많이 사용하는 메모리의 데이터를 넣어놓고 메모리까지 접근하지 않고 CPU가 가져다 쓸 수 있게 함) - 일반적인 data, 변수, stack 저장용 - 주로 임베디드 컴퓨터에 사용 DRAM (Dinamic RAM) - 축전기 (Capacitor, CAP)로 작동하는 방식 - 시간에 흐름에 따라 메모리가 변화하기 때문에 일정 간격으로 충전이 필요하여 Refresh 회로에 신호를 보내줘야 함 - 주로 대형 컴퓨터에.. [컴퓨터 공학] 논리 연산과 Adder 논리 연산(Logical operation) - 컴퓨터 과학과 전자공학에서 중요한 개념으로, 논리적인 판단과 결정을 컴퓨터가 수행할 수 있도록 하는 데 사용. - 주로 논리 게이트와 함께 사용되며, 이러한 게이트들은 논리적인 입력을 받아들여 특정한 논리적 결과를 출력함. 이러한 연산들은 주로 논리값(참 또는 거짓)을 다루는 것에 초점을 맞춘다. AND 연산 입력이 모두 참일 때만 결과가 참이 되고, 그 외의 경우에는 거짓이 됨. 이는 두 입력이 모두 참일 때만 결과가 참이 되는 것을 의미함 OR 연산 입력 중 하나 이상이 참이면 결과가 참이 되고, 모든 입력이 거짓인 경우에만 결과가 거짓이 됨 NOT 연산 입력 값의 반대를 반환합니다. 즉, 입력이 참이면 결과는 거짓이 되고, 입력이 거짓이면 결과는 참이.. [컴퓨터 공학] Bit와 Byte 비트(Bit) - 컴퓨터에서 가장 작은 데이터 단위 - 이진(0 또는 1)으로 표현되는 정보의 최소 단위로 사용. 따라서 비트는 정보의 표현과 저장에 사용 - 컴퓨터에서 정보를 나타내고 처리하는 데에 핵심적인 역할하며 이를 통해 다양한 형태의 데이터가 컴퓨터 시스템에서 다루어지고 관리됨 바이트(Byte) - 보통 8개의 비트로 이루어져 있으며, 이는 일반적인 컴퓨터 시스템에서 가장 작은 주소 가능한 메모리의 크기 - 문자, 숫자, 이미지, 음악 등 모든 종류의 데이터를 나타내는 데 사용 관련 link https://blog.naver.com/kji9653/221900031533 비트(bit)와 바이트(Byte)란?왜 8비트는 1바이트인가? 킬로바이트(kilobyte) 메가바이트(megabyte) 기가 안.. [컴퓨터 공학] 컴퓨터 구성 요소 이해 컴퓨터 구조(Computer Science) - 컴퓨터 시스템은 하드웨어와 소프트웨어로 구성 - 주요 소프트웨어 : 운영체제와 응용 프로그램 - 주요 하드웨어 : CPU(중앙처리장치), Memory, Storage, Network device 등 - 현재 컴퓨터 구조는 폰노이만 구조 폰노이만 구조 - Memory에 프로그램과 데이터가 저장 - 하나씩 꺼내어 CPU의 ALU로 연산 컴퓨터 주요 구성 요소 핵심 1. CPU (중앙처리장치 , Central Processor Unit) - 연산 : ALU(Arithmetic Logic Unit) (산술연산 ㅠ : Arithmetic Operation / 논리연산 : Logic Operation) - 제어 : Control Device IO Device (입출력.. [Algoritm 기초] 최소 신장 트리(Minimum Spanning Tree) 최소 신장 트리(Minimum Spanning Tree , MST) - 그래프 상의 모든 노드들을 최소 비용으로 연결하는 방법 크루스칼 (Kruskal) - 간선 중 최소 값을 가진 간선부터 연결 - 사이클 발생 시 다른 간선 선택 - 주로 간선 수가 적을 때 사용 알고리즘 복잡도 : O(ElogE) 경로 최적화를 이용하지 않는 경우 O(ElogV), 경로 최적화를 이용하는 경우 O(Elog∗V) 프림(Prim) - 임의의 노드에서 시작 - 연결된 노드들의 간선 중 낮은 가중치를 갖는 간선 선택 - 간선의 개수가 많을 때 쿠르스칼 보다 유리 알고리즘 복잡도 : O(ElogV) 바이너리 힙을 이용하는 경우 O(E+VlogV) import java.util.Arrays; //최소 신장 트리 - 크루스칼 pu.. 이전 1 2 3 4 ··· 10 다음