전체 글
-
Array의 인덱스와 벨류로 이루어진 값을 튜플로 반환 for (index,value) in Array.enumerated() { // 구현} ex1)for (i, v) in "Swift".enumerated() { print("\(i): '\(v)'")}// Prints "0: 'S'"// Prints "1: 'w'"// Prints "2: 'i'"// Prints "3: 'f'"// Prints "4: 't'"ex2)let array = [2,4,6,8,10]for (index, value) in array.enumerated() { print("\(index): \(value)")}// Prints "0: 2"// Prints "1: 4"// Prints "2: 6"// Prints "3..
[Swift] enumerated()Array의 인덱스와 벨류로 이루어진 값을 튜플로 반환 for (index,value) in Array.enumerated() { // 구현} ex1)for (i, v) in "Swift".enumerated() { print("\(i): '\(v)'")}// Prints "0: 'S'"// Prints "1: 'w'"// Prints "2: 'i'"// Prints "3: 'f'"// Prints "4: 't'"ex2)let array = [2,4,6,8,10]for (index, value) in array.enumerated() { print("\(index): \(value)")}// Prints "0: 2"// Prints "1: 4"// Prints "2: 6"// Prints "3..
2022.08.17 -
기본설정 : 텍스트필드 backgroundColor = .green, 오토레이아웃 leading,trailing, bottom = 10 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() } } 위와 같이 TextField를 선택시 키보드가 올라오지만 다른곳을 터치해도 키보드가 내려가지 않는다. 그 이유는 터치이벤트가 발생했을때 해당 터치가 발생한 뷰에 First Responder가 지정되어 becomeFirstResponder가 호출되어 키보드가 올라왔지만 그 이후 First Responder를..
[iOS] 키보드 자동으로 내리기 및 키보드 위치에 따라 TextField 위치 바꾸기기본설정 : 텍스트필드 backgroundColor = .green, 오토레이아웃 leading,trailing, bottom = 10 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() } } 위와 같이 TextField를 선택시 키보드가 올라오지만 다른곳을 터치해도 키보드가 내려가지 않는다. 그 이유는 터치이벤트가 발생했을때 해당 터치가 발생한 뷰에 First Responder가 지정되어 becomeFirstResponder가 호출되어 키보드가 올라왔지만 그 이후 First Responder를..
2022.06.04 -
Q1 : CPU 스케줄링의 기본 목표는 무엇인가? CPU 스케줄링 알고리즘들을 평가하는 기준 6가지만 간단히 설명하라. A1 : CPU 스케줄링의 목표는 CPU를 가능한 놀지 않게 하여 CPU 활용률을 높이고, 컴퓨터 시스템이 단위 시간 당 더 많은 스레드를 처리하는 데에 있다. 1. CPU 활용율 : 컴퓨터 전체 기동 시간에 대한 CPU 사용 시간의 비율 2. 처리율 : 단위 시간 당 처리하는 스레드의 개수 3. 공평성 : 기아 스레드가 생기지 않도록, 모든 스레드에게 CPU 사용시간을 공평하게 배분 4. 응답 시간 : 사용자에 대한 응답에 걸리는 시간 5. 대기 시간 : 스레드가 준비 리스트에서 CPU를 할당 받을때까지 기다리는 시간 6. 소요 시간 : 다중프로그래밍 시스템 입장 : 프로세스가 시작되..
5장 CPU 스케줄링Q1 : CPU 스케줄링의 기본 목표는 무엇인가? CPU 스케줄링 알고리즘들을 평가하는 기준 6가지만 간단히 설명하라. A1 : CPU 스케줄링의 목표는 CPU를 가능한 놀지 않게 하여 CPU 활용률을 높이고, 컴퓨터 시스템이 단위 시간 당 더 많은 스레드를 처리하는 데에 있다. 1. CPU 활용율 : 컴퓨터 전체 기동 시간에 대한 CPU 사용 시간의 비율 2. 처리율 : 단위 시간 당 처리하는 스레드의 개수 3. 공평성 : 기아 스레드가 생기지 않도록, 모든 스레드에게 CPU 사용시간을 공평하게 배분 4. 응답 시간 : 사용자에 대한 응답에 걸리는 시간 5. 대기 시간 : 스레드가 준비 리스트에서 CPU를 할당 받을때까지 기다리는 시간 6. 소요 시간 : 다중프로그래밍 시스템 입장 : 프로세스가 시작되..
2022.01.13 -
//myshell.c #include #include #include #include #include #include #include #include #define READ 0 #define WRITE 1 #define SIZE 1024 char* cmd[SIZE]; char* ptr; int cmd_index; void init() { // 전역변수 초기화 for (int i = 0; i "); while (ptr = strtok(N..
shell 프로그램//myshell.c #include #include #include #include #include #include #include #include #define READ 0 #define WRITE 1 #define SIZE 1024 char* cmd[SIZE]; char* ptr; int cmd_index; void init() { // 전역변수 초기화 for (int i = 0; i "); while (ptr = strtok(N..
2022.01.12 -
//myls.c #include #include #include #include #include #include #include #include #include #define BUF_SIZE 512 #define mode_l "-l" #define mode_a "-a" #define mode_al "-al" #define mode_nomal "nomal" char type(mode_t mode); char* perm(mode_t mode); void printStat(char* pathname, char* file, struct stat* st); void ls(char* dir, char* mode); void ls_nomal(char* dir); void file_l(char* filename, ch..
ls 프로그램//myls.c #include #include #include #include #include #include #include #include #include #define BUF_SIZE 512 #define mode_l "-l" #define mode_a "-a" #define mode_al "-al" #define mode_nomal "nomal" char type(mode_t mode); char* perm(mode_t mode); void printStat(char* pathname, char* file, struct stat* st); void ls(char* dir, char* mode); void ls_nomal(char* dir); void file_l(char* filename, ch..
2022.01.12 -
Q1 : 올해 넥슨의 채용계약형 인턴 선발에서 나온 질문이다. '프로세스와 스레드의 차이점이 무엇인지 설명해보라' 이 질문에 대해 3장과 4장을 공부한 지금 차이점을 10줄로 설명하라. 다양한 관점에서 비교하고 진지하게 답을 써보라. 스레드가 왜 프로세스보다 나은 실행단위인지에 대해 잘 드러나도록 설명하라. A1 : 공간적인 관점에서 프로세스들은 서로 완전히 독립적인 주소 공간을 가진다. 예를 들어 프로세스A에서 프로세스B의 주소공간에 직접접근을 할 방법이 없다. 따라서 프로세스간 통신을 하기 위해선 커널을 통해 데이터를 주고 받아야 하기 때문에 매번 시스템호출이 필요하다. 하지만 매번 시스템호출을 통한 통신을 하게되면 필요한 비용이 크기 때문에 자주 사용하면 문제점이 많다. 반면 스레드는 같은 프로세스..
4장 스레드와 멀티태스킹Q1 : 올해 넥슨의 채용계약형 인턴 선발에서 나온 질문이다. '프로세스와 스레드의 차이점이 무엇인지 설명해보라' 이 질문에 대해 3장과 4장을 공부한 지금 차이점을 10줄로 설명하라. 다양한 관점에서 비교하고 진지하게 답을 써보라. 스레드가 왜 프로세스보다 나은 실행단위인지에 대해 잘 드러나도록 설명하라. A1 : 공간적인 관점에서 프로세스들은 서로 완전히 독립적인 주소 공간을 가진다. 예를 들어 프로세스A에서 프로세스B의 주소공간에 직접접근을 할 방법이 없다. 따라서 프로세스간 통신을 하기 위해선 커널을 통해 데이터를 주고 받아야 하기 때문에 매번 시스템호출이 필요하다. 하지만 매번 시스템호출을 통한 통신을 하게되면 필요한 비용이 크기 때문에 자주 사용하면 문제점이 많다. 반면 스레드는 같은 프로세스..
2022.01.10 -
Q1 : 운영체제는 프로그램을 적재하여 프로세스를 만든다. 프로세스를 만든다는 의미가 무엇인지 3장 전체를 공부한 결과, 나름대로 설명하라. A1 : 프로세스는 프로그램이 메모리에 적재되어있는 상태를 말한다. 운영체제는 프로그램이 실행되면 이를 메모리에 적재하고 PCB를 만들어 해당 프로세스의 PID와 프로세스의 상태 정보등 모든것을 기록한뒤 프로세스 테이블에 PID와PCB를 저장하여 모든 프로세스를 관리한다. 모든 프로세스는 프로세스로부터 생성되기때문에 프로세스는 일반적으로 부모-자식 관계를 가지며 프로세스를 만든다는 의미는 프로세스가 새로운 프로세스를 생성하여 해당 프로세스의 PID와 PCB가 새롭게 생성되어 프로세스 테이블에 기록되는것이다. Q2 : 32비트 컴퓨터에서 한 프로세스의 주소 공간의 크..
3장 프로세스와 프로세스 관리Q1 : 운영체제는 프로그램을 적재하여 프로세스를 만든다. 프로세스를 만든다는 의미가 무엇인지 3장 전체를 공부한 결과, 나름대로 설명하라. A1 : 프로세스는 프로그램이 메모리에 적재되어있는 상태를 말한다. 운영체제는 프로그램이 실행되면 이를 메모리에 적재하고 PCB를 만들어 해당 프로세스의 PID와 프로세스의 상태 정보등 모든것을 기록한뒤 프로세스 테이블에 PID와PCB를 저장하여 모든 프로세스를 관리한다. 모든 프로세스는 프로세스로부터 생성되기때문에 프로세스는 일반적으로 부모-자식 관계를 가지며 프로세스를 만든다는 의미는 프로세스가 새로운 프로세스를 생성하여 해당 프로세스의 PID와 PCB가 새롭게 생성되어 프로세스 테이블에 기록되는것이다. Q2 : 32비트 컴퓨터에서 한 프로세스의 주소 공간의 크..
2022.01.03 -
package example; import java.awt.BorderLayout; import javax.swing.DefaultListModel; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.SwingConstants; public class CountryList extends JFrame { public CountryList() { setSize(400,700); setVisible(true); getContentPane().setLayout(new Borde..
JList의 CustomReder (JList에 JLabel붙이기)package example; import java.awt.BorderLayout; import javax.swing.DefaultListModel; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.SwingConstants; public class CountryList extends JFrame { public CountryList() { setSize(400,700); setVisible(true); getContentPane().setLayout(new Borde..
2021.12.30