Keem's 개발일지

[Project] 크로스 플랫폼 앱 개발 : 디자인

개요 진행할 프로젝트의 구체적인 화면을 제작하고 완성도를 높인다. 팀에서 선정한 UI 설계 기준은 다음과 같다. 1.     요구사항에 작성된 기능들을 모두 반영하는가? 2.     각 화면에서 진행하는 입출력 동작을 구체화한다. 3.    예측 가능한 예외를 찾는다. 요구사항 정의서 기존에 작성한 요구사항 정의서 내용은 다음과 같다....

[AWS] EC2 생성 및 접속

[AWS] EC2 생성 및 접속 들어가기에 앞서 교내 팀 프로젝트를 통해 백엔드 개발 다수 존재하지만, 환경 구축이나 배포 경험은 부족하다. 이번 학기에는 “다우기술”의 사내 문제를 해결하는 해커톤 형태의 과목을 수강하게 되었고, 팀원들과 역할을 분담하여 초기 백엔드 환경 구축 및 배포를 맡게 되었다. 해당 글은 기록용으로 부족한 부분이 있을 수 ...

[Linux] Ubuntu 한글 설정

[Linux] Ubuntu 한글 설정 크롤러를 만드는 중 gui가 필요하여 xrdp를 설치하여 접속하였다. 브라우저에서 검색을 하려고 하니 영어 밖에 입력이 되지 않고, 한글은 모두 깨져서 ㅁ으로 표시되는 일이 발생했다. 이 내용을 바탕으로 검색하여보니 많은 해결법들이 있었지만 나에게는 적용되지 않아 골머리를 앓았다. 다음은 내가 해결한 방법이다....

[운영체제/연습문제] 8장 메모리 관리

8장 메모리 관리 1. 컴퓨터 시스템에서 메모리 계층 구조를 이루는 근본 이유는 무엇인가? ① CPU의 메모리 액세스 속도를 높이기 위해 2. 메모리계층화가 성공적인 이유는? ① 참조의 지역성 때문 3. 메모리 계층 구조에서 가장 빠른 메모리는 ④ CPU 레지스터 4. 메모리 계층 구조를 구성하는 기억 장치들의 특장으...

[운영체제/연습문제] 7장 교착상태

7장 교착상태 1. 젓가락과 숟가락이 하나씩만 있는 식탁에서 두 사람이 식사를 한다고 하자. 숟가락과 젓가락을 동시에 들어야 한 입 식사가 가능하며, 숟가락이든 젓가락이든 한 번에 하나 씩 들어야 한다. 한 개만 가진 사람은 나머지 한 개가 준비될 때까지 기다려야 한다. 한 입 식사 후 들고 있던 숟가락과 젓가락은 모두 내려놓으며, 둘은 대화할 수 ...

[운영체제/연습문제] 6장 스레드 동기화 연습문제

1. 여러 스레드가 공유 변수를 접근하려고 경쟁할 때 공유 변수의 값이 훼손되는 상황이 발생할 수 있다. 공유 변수가 훼 손되지 않도록 스레드 사이에 공유 변수에 대한 접근 시간과 방법 등을 조절하는 기법을 무엇이하고 하는가? ① 스레드 동기화 2. 멀티스레드가 동시에 공유 데이터를 접근할 때 공유 데이터가 훼손되지 않도록 막는 기법의 핵심...

[운영체제/연습문제] CPU 스케줄링 연습문제

1. 다음 빈 칸에 적절한 단어를 삽입하라 프로그램의 실행 과정은 두 가지 상황이 번갈아 진행되는데, 그것은 한동안 CPU 연산이 계속되는 ( ) 상황과, I/O 작업이 이루어지는 ( ) 상황이다. CPU 연산이 주를 이룰 때 ( ) 프로세스라고 부르고 I/O 작업이 주를 이룰 때 ( ) 프로세스라고 한다. CPU 스케줄링은 CPU의 ( ) 시간을 ...

[운영체제/연습문제] 3장 프로세스와 프로세스 관리

1. 다음 글에서 프로세스와 프로그램 중에서 선택하라. (프로그램)은(는) 컴파일되어 실행 가능한 형태로 저장 장치에 저장된 상태일 때 부르는 용어이며, (프로세스)은(는) 메모리에 적재되어 실행 중인 상태일 때 부르는 용어이다. 2. 프로세스의 특징을 설명한 것 중 맞는 것은? ④ 프로세스를 스케줄링하는 것은 커널의 기능이다 3. 프...

[운영체제/복합문제] 2장 컴퓨터 시스템과 운영체제

1. 응용프로그램을 작성할 때 표준 라이브러리 함수(예: printf())를호출하는 것이 시스템 호출 함수(예: write()) 를 호출하는 것보다 나은 방법인 이유를 설명하라. printf()는 표준 라이브러리 함수로 현재 버퍼가 가득 차거나 ‘\n’을 만나면 시스템 호출 함수인 write()를 호출한다. printf()는 먼저 버퍼에 ...

[운영체제/연습문제] 1장 운영체제의 시작과 발전

1. 운영체제의 기능과 거리가 먼 것은? ④ 컴파일 2. 운영체제의 특징과동떨어진내용은? ① 운영체제의 기능이 자원을 관리하는 것이지만, 운영체제가 컴퓨터의 모든 자원을 관리하지는 않는다. 3. 고정 프로그래밍 방식을 설명하는 것으로 틀린 것은? ② 운영체제가 한 번에 한 개의 프로그램만 실행시키는 방식이다. 4. 모바...

[운영체제/복합문제] 1장 운영체제의 시작과 발전

1. 다음은 프로그램 A, B, C가 모두 도착해있는 상태에서 배치 운영체제에 의해 처리되는 과정이다. 다음 2개의 문항에 답하라 (1) 3개의 프로그램이 모두 메모리에 적재되어 있다고 할 때, 다중프로그래밍 운영체제에서 3개의 프로그램 A, B, C가 실행되는 과정을 그려라 참고로 프로그램 A. B, C 순서로 처리하되, 프로그램의 실행 중 입...

[운영체제] 6장 스레드 동기화

스레드 동기화 1. 스레드 동기화의 필요성 여러 스레드가 동시에 같은 변수에 접근하여 데이터를 조작할 경우 원치 않는 결과가 초래됨 이를 해결하기 위해 공유 데이터에 대한 다수 스레드의 동시 접근을 해결하는 방법이 스레드 동기화이다. 1.1 공유 집계판 문제 스레드 동기화를 통해 여러 스레드가 동시에 공유 데이터에 접근하는 것을 막...

[운영체제] 3장 프로세스와 프로세스 관리

3장 프로세스와 프로세스 관리 3.1 프로세스 개요 1.1 프로그램과 프로세스 프로세스란? 프로그램은 하드 디스크나 USB 등 저장 장치에 저장된 실행 가능한 파일이며, 프로그램이 메모리에 적재되어 실행 중일 때 프로세스라고 부른다. ※ 프로세스 메모리에 적재되어 실행중인 프로그램 3.1.1 프로세스의 특징 메모리...

[운영체제] 5주차 과제

1. ‘프로세스와 스레드의 차이점이 무엇인지 설명해보라’ 이것은 작년 넥슨의 채용계약형 인턴 선발에서 나온 질문이다. 프로세스와 스레드의 차이점을 간단히 설명하고, 멀티태스킹 프로그램을 작성하기 위해 여러 프로세스를 생성하는 것보다 멀티 스레드를 생성하는 것이 왜 나은 것인지, 개발자의 입장과 컴퓨터 시스템의 입장에서 구분하여 구체적으로 설명하라. ...

[운영체제] 4주차 과제

1. 운영체제는 프로그램을 적재하여 프로세스를 만든다. 3장 전체를 공부한 결과 프로세스를 만든다는 의미가 무엇인지 나름대로 긴 3줄로 설명하라. 운영체제가 어떤 작업을 하느냐 하는 관점에서 설명하면 된다. 운영체제의 관점에서 프로세스를 만드는 것은 프로세스에게 필요한 메모리를 할당하고 이곳에 코드와 데이터 등을 적재한다. 운영체제는 프로세스 마다 ...

[운영체제] 2장 컴퓨터 시스템과 운영체제 (2)

3. 커널과 시스템 호출 3.1 응용프로그램의 자원 접근문제 응용 프로그램이 자원에 대한 직접적인 접근 권한을 가지게 된다면 다음과 같은 문제가 발생할 수 있다. 응용프로그램이 다른 응용프로그램이 적재된 메모리를 덮어써버리거나, 다른 응용프로그램이 생성 한 파일을 삭제하거나 하는 등 다른 응용프로그램의 실행을 망칠 수 있다. • 응용...

[운영체제] 3주차 과제

3주차 과제 1. 학생은 지금 게임회사 넥슨에서 면접을 보고 있다. ‘커널이 무엇인가’라고 질문 받을 때, 학생의 답을 기술하라. 전공자로서 정확하고 충분히 답을 못하면 면접에서 떨어진다. 최소 5줄을 꽉 채울 수준으로 설명하라. 커널이란 부팅 후부터 메모리에 상주하면서 CPU, 캐시, 메모리 등 하드웨어를 관리하고 프로세스의 실행과 중단...

[운영체제] 2장 컴퓨터 시스템과 운영체제 (1)

1. 컴퓨터 시스템과 하드웨어 1.1 컴퓨터 시스템의 범위 컴퓨터 시스템은 크게 다음 3개의 요소로 이루어진다. 응용 소프트웨어 층 운영체제 층 하드웨어 층 사용자는 응용 소프트웨어를 조작하여 컴퓨터를 사용하고 응용 프로그램은 운영체제와의 인터페이스를 통해 하드웨어를 조작한다. 운영체제의 본질적인 특징은 사용자가 하드...

[운영체제] 1주차 과제

1. 운영체제를 자신만의 말로(영혼을 담아) 간단히 정의하고, 운영체제의 기능을 5가지만 설명하 라.” 각 기능에 대해서는 2줄로 설명하라. 1. 운영체제란 1. 입주민(사용자)의 요청을 처리하고, 컴퓨터의 자원을 독점적으로 관리하는 아파트의 경비 아저씨(관리자)이다. 2. CPU/프로세스 관리 1. 프로세스의 실행, 새로운 프로세스 생...

[운영체제] 1장 운영체제의 시작과 발전

1. 운영체제의 개념 1-1. 운영체제의 정의 운영체제란 무엇인가? 운영체제는 컴퓨터를 관리하는 특별한 기능의 코드 집합 혹은 프로그램이다. 간단히 말해 >운영체제란 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어이다. 즉, 운영체제는 모든 컴퓨터 자원을 관리한다. 자원에는 하드웨어 자원, 소프트웨어 자원, 데이터 자원이 있으...

[소프트웨어 공학] 소프트웨어 개발 방법론 개발 방법론 (RAD, Lean Startup, Agile, DevOps)

소프트웨어 개발 방법론 1. RAD (Rapid Application Development) 사용자의 지속적 참여하에서 빠르게 애플리케이션을 개발하기 위한 개발 라이플 사이클 모델 빠른 애플리케이션 개발을 위한 자동 생성 도구 지속적인 참여 및 피드백을 통한 개선 1.1 RAD의 특성 고객 참여 - 피드백 신속 ...