Post

24/04/18 데일리 미션

  1. HTML, CSS, JavaScript는 각각 어떤 차이가 있나요
    • 답변
  2. JavaScript 기초문법 5가지를 간단하게 설명해주세요.
    • 답변

      1. 변수(Variable): 코드의 재사용성을 높여주는 대표적인 요소로, 원하는 값을 저장하는데 사용한다. ⇒ String, Number, null, undefined, Boolean 이렇게 5개에 BigInt, Symbol 까지 총 7개 있다고하는데 마지막 2개는 mdn 공식 문서를 보다 처음 봤다.
      2. 리스트(List): 변수와 같은 요소들을 하나의 묶음으로 저장할 수 있게 해주는 자료형이다.
      3. 딕셔너리(Dictionary): 단어 자체가 가진 뜻 처럼, 사전을 떠올리면 쉽다. 사전에서 단어를 찾아보면 특정 단어가 있고 그 뜻이 함께 짝지어 기재되어있는데, 자료형 딕셔너리도 단어에 해당하는 key 값이 존재하며 뜻에 해당하는 value 를 함께 저장할 수 있는 자료형이다. ⇒ JS 에서는 객체가 딕셔너리 형태를 가진다.
      4. 조건문(condition): 프로그램의 동작을 특정 조건에 따라서 제어하고 싶을 때 사용할 수 있다.
      5. 반복문(loop): 다수의 요소에 동일한 작업을 반복해서 적용하고 싶을 때, 조건과 함께 제어해 사용한다.
  3. 관계형/비관계형 데이터베이스의 특성을 반영한 웹서비스 아이디어(각 1개씩, 총 2개)를 간단하게 작성해주세요. (목적, 대상, 주요 서비스)
    • 답변 관계형 데이터베이스
      • 목적 : 학생들의 학적과 성적을 관리하기 위해
      • 대상 : 교직원, 학교 등 교육 기관
      • 주요 서비스 : 교육 기관에 속한 학생들의 성적 정보를 개별적으로 조회할 수 있음.

      비관계형 데이터베이스

      • 목적 : 많은 사람들이 직접 올린 동영상을 동시 다발적으로 시청할 수 있도록 하기 위해
      • 대상 : 동영상 스트리밍 서비스를 이용하고 싶은 사람들
      • 주요 서비스 : 다른 유저들이 업로드한 동영상을 스트리밍 재생할 수 있음.
  4. 데이터베이스(Database)
    • 답변

      먼저, 데이터라 함은 현실 세계에서 존재하는 다양한 자료들을 말한다. 이를 가공해서 의미있는 단위를 만들어낸다면 이것은 정보라고 부를 수 있다!

      데이터베이스는 이 데이터(혹은 정보)를 체계적으로 다루기 위해 등장한 것이다.

  5. 관계형 데이터베이스(Relational DataBase)
    • 답변

      관계형 데이터베이스는 테이블을 이용해서 데이터를 저장하고, 관리하는 유형을 말한다. 아래와 같은 테이블을 연상하면 관계형 DB를 이해하기 쉬울 것이다.

      이름나이
      김철수24
      박민영25
  6. 쿼리(Query)
    • 답변

      쿼리는 데이터베이스에 정보를 보내달라는 요청을 의미하는 것이다. 클라이언트가 서비스를 이용하면서, 웹 서버에 계속해서 쿼리를 보내게 된다. 서버는 쿼리에 대한 답변을 클라이언트에게 보내주는 과정을 거친다.

      클라이언트 → 쿼리 → 서버 → 결과 → 클라이언트 이렇게 정리할 수 있을 것 같다.

  7. API(Application Programming Interface)
    • 답변

      api 는 프로그램이나 소프트웨어와 정보를 주고 받을 수 있는 하나의 수단으로 이해하면 좋을 것 같다. open api 를 이용해 미세먼지 지수나, 기온 정보를 얻어왔던 것 처럼 정보를 요청하는 수단인 것이다. 쿼리를 보낼때 클라이언트는 API 를 통해서 쿼리를 보내고, 서버는 이를 통해 결과를 보내주는 것이다.

  8. 오픈소스(Open Source)
    • 답변

      오픈소스는 소프트웨어의 소스코드나 설계도 등을 열람하거나 이용할 수 있도록 공개하는 것을 말한다. 따라서, 오픈 소스 소프트웨어는 해당 소프트웨어의 공개된 소스코드를 이용하거나 열람할 수 있는 것이다. 그러나 소프트웨어의 가격이 무료인지 유료인지는 전혀 관계 없는 것이다!

  9. SDK(Software Development Kit)
    • 답변

      단어 그대로, 소프트웨어를 개발하는데 필요한(또는 유용한) 도구 모음이다. iOS SDK 는 iOS 환경에서 소프트웨어를 만들때 필요한 요소들을 제공하는 것이다. 예를 들어, iOS SDK 에는 iPhone 같은 장치에서 어떻게 동작하는지 확인할 수 있는 시뮬레이터도 제공한다고 한다!

  10. IDE(Integrated Development Environment)
    • 답변

      통합 개발 환경이라는 단어로 번역할 수 있다. 대표적인 예시는 VS code! 개발자가 개발하는데 도움 되는 도구들(빌드, 디버거, 소프트웨어 편집 기능등)을 제공한다.

      메모장으로 코딩을 할 수도 있지만, 작성한 코드를 빌드해서 결과를 확인하는 기능을 위해서는 또 다른 소프트웨어가 필요하다면 너무 번거롭다! 그래서 우리는 IDE 를 쓰는 것이다.

  11. OS
    • 답변

      OS 는 운영 체제(Operating System)으로, 우리가 컴퓨터를 편하게 이용할 수 있는 도구다! 만약, 윈도우나 맥 OS 등 다양한 운영체제가 없다면 컴퓨터는 그냥 깡통 이상 이하도 아닌것…

      더 깊이 들어가자면, 하드웨어와 우리가 이용하는 소프트웨어의 중간 다리 역할을 하는 것!

      Untitled

      위와 같은 구조를 갖췄는데, 크게 유저 공간과 커널 공간으로 나눌 수 있다. 유저 공간은, 우리가 운영체제에서 접근할 수 있는 영역을 생각하면 좋다.

      커널 영역에는 커널, 인터페이스, 시스템 콜, 드라이버가 있다. 커널은 프로세스를 말하는 것인데, 운영체제가 동작할 때 계속해서 실행되어 있으면서 시스템의 자원을 관리하는 역할을 주로 맡는다. 시스템 콜은 커널을 보호하기 위한 별도의 인터페이스다. 앞서 커널은 메모리와 같은 시스템 자원을 관리한다고 했다.

      그렇다면, 커널에 마음대로 접근할 수 있는건 말도 안된다! 그래서 시스템 콜을 통해서만 접근할 수 있게 설계하는 것이다.

      다음으로 인터페이스는 이제는 익숙한 단어가 됐을 것 같다. 지금 우리가 일반적으로 OS 를 다루는 방식은 대부분 GUI 다. 이와 달리 CLI 도 존재한다. git 을 다룰 때 명령어를 통해 다루는 것을 생각해보면 이해하기 쉽다.

      https://coduking.tistory.com/entry/운영체제OS란-개념과-구조커널-시스템콜-등

  12. 유닉스(Unix)
    • 답변

      현대 운영체제의 근간으로 볼 수 있다. 윈도우를 제외하고 유닉스 기반이 아닌 OS 는 전무하다고 봐도 되지 않을까..?

      초기에는 서버용 OS 로 개발되었으나, 많은 개발자들이 이용하게 되면서 편의성을 높이는 다양한 소프트웨어가 등장하고 사용자가 크게 증가했다고 한다.

  13. 리눅스(Linux)
    • 답변

      유닉스를 기반으로 만들어진 OS 중 가장 유명하다고 봐도 될 것! 오픈소스로, 다양한 버전의 배포판이 있다. → Ubuntu, Redhat 등

      어느 플랫폼에도 이식이 가능하다는 큰 장점이 있어서 많이 이용되고 있다.

This post is licensed under CC BY 4.0 by the author.