본문 바로가기

전체 글

(139)
Java Study : 11주차 - 백준 문제풀이 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int M = in.nextInt(); int[] arr = new int[N]; for (int i = ..
Java Study : 11주차 - 자바 입출력 자바 입출력과 스트림 스트림 자바의 모든 입출력은 스트림을 통해서 이루어 지는데 자바는 입출력 장치와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 일종의 가상 통로인 스트림을 제공한다. 입력 스트림과 출력 스트림 입력 스트림 어떤 대상으로부터 자료를 읽어 들일 때 사용하는 스트림 Input이나 Reader로 끝나는 이름의 클래스는 입력 스트림이다. 출력 스트림 OutputStream이나 Writer로 끝나는 이름의 클래스는 출력 스트림이다. 바이트 단위 스트림과 문자 단위 스트림 바이트 단위 스트림 자바의 스트림은 원래 바이트 단위로 자료의 입출력이 이루어진다. 스트림 클래스의 이름이 Stream으로 끝나는 경우는 바이트 단위를 처리하는 스트림이다. 문자 단위 스트림 자바에서는 입출력 중 가장 많이..
CS Study : 10주차 - 스케줄러(Scheduler) / CPU 스케줄러 스케줄러(Scheduler) 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중에 하나를 선택하는 역할을 수행한다. 프로세스를 스케줄링을하기 위한 Queue는 세 가지 종류가 존재 한다. Job Queue - 시스템 안의 모든 프로세스의 집합 Ready Queue - 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue - Device I/O 작업을 대기하고 있는 프로세스의 집합 스케줄러 종류 장기 스케줄러(Long-term scheduler or job scheduler) 디스크와 메모리 사이의 스케줄링을 담당 몇개의 프로그램이 올라갈 것인지를 제어 - degree of Multiprogrammin..
iOS Study : 11주차 - 계산기 클론 코딩 디자인 코드 ViewController.swift 파일 코드 import UIKit var calculatorCount = 0 class ViewController: UIViewController { @IBOutlet private weak var display: UILabel! private var userIsInTheMiddleOfTyping: Bool = false //MVC가 생성될 때 한번만 호출 override func viewDidLoad() { super.viewDidLoad() calculatorCount += 1 print("Loa ded up a new Calculator (Count = \(calculatorCount))") //루트 대신 Z를 사용 brain.addUnaryOper..
iOS Study : 11주차 - 기초 문법 공부 MVC(Model, View, Controller) 패턴 Model 어플리케이션이 무엇을 말하는지를 말한다. 계산기 앱에서는 계산을 하는 부분 Controller 모델이 스크린에 어떻게 표현될 것인지를 말한다. 기본적으로 모든 컨트롤러에 들어가는 UI 로직 View 컨트롤러의 하위 종속자 컨트롤러가 화면에 무언가를 보여주기 위해 사용 MVC 사이의 관계 Controller 컨트롤러는 모델의 모든 것을 알고 있고 보내고 싶은 요청을 언제든지 보낼 수 있다. 컨트롤러는 사용자에게 모델에 있는 것을 표현하거나 사용자로부터 정보 받아 모델을 업데이트 하는 것이기 때문에 전체적인 통제가 필요하다. View의 경우도 마찬가지이다. 대부분의 뷰와 모델의 연결은 outlet을 통해서 이루어진다. Model 모델과 뷰는..
Java Study : 10주차 정리 - 예외처리 예외 클래스 오류란? 프로그램에서 오류가 발생하는 상황은 두 가지 이다. 프로그램 코드 작성 중 실수로 발생하는 컴파일 오류 실행 중인 프로그램이 의도하지 않은 동작을 하거나 프로그램이 중지되는 실행 오류 실행 오류 중 프로그램을 잘못 구현하여 의도한 바와 다르게 실행되어 생기는 오류를 버그라 한다. 오류와 예외 실행 오류는 크게 두 가지가 있는데, 하나는 자바 가상 머신에서 발생하는 시스템 오류, 하나는 예외 이다. 시스템 오류는 프로그램에서 제어할 수 없지만, 예외는 프로그램에서 제어가 가능하다. 예외 클래스의 종류 프로그램에서 처리하는예외 클래스의 최상위 클래스는 Exception 클래스이다. Exceoption 하위 클래스에중 IOException 클래스는 입출력에 대한 예외 처리를 처리하고, R..
CS Study : 9주차 - 멀티 프로세스와 멀티 스레드 멀티 프로세스 하나의 어플리케이션을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것이다. 특징 여러개의 자식 프로세스 중 하나에 문제가 발생해도 다른 자식 프로세스에 영향이 확산되지 않기 때문에 안정성이 좋다. 구현이 비교적 간단하고, 각 프로세스들이 독립적으로 동작하여 자원이 서로 다르게 할당된다. 프로세스 간 통신을 하기 위해서는 IPC를 통해야 한다. IPC(Inter Process Communication) - 프로세스들 간의 의사소통 하는 것 메모리 사용량이 많다. 스케줄링에 따른 문맥교환이 많아지고, 성능 저하의 우려가 있다. 멀티 스레드 하나의 어플리케이션을 여러 개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록 하는 것이다. 사용자와 상호작용하는..
CS Study : 9주차 - 프로세스와 스레드 프로세스(Process) 프로세스는 실행중에 있는 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 스케줄링의 대상이 되는 작업과 같은 의미로 쓰인다. 프로세스 내부에는 최소 하나의 스레드(thread)를 가지고 있는데, 실제로는 스레드 단위로 스케줄링을 한다. 하드디스크에 있는 프로그램을 실행하면, 실행을 위해서 메모리 할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터 프로세스라 불린다. 프로세스의 문맥(context) CPU 수행 상태를 나타내는 하드웨어 문맥 프로세스의 메모리 영역 Code 영역 - 실행할 프로그램의 코드나 명령어들이 기계어 형태로 저장된 영역, CPU는 코드영역에 저장된 명령어들을 하나씩 처리한다. Data 영역 - 코..