데이터베이스 모델링
·
방통대 컴퓨터과학과/3학년1학기
데이터베이스 모델링의 이해 데이터베이스 모델링이란 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업이다. 데이터베이스 모델링 과정은 데이터에 초점을 맞추어 개별적 데이터의 특징을 분리하는 개념적 데이터 모델링이 이뤄지고 이후 특정 상용 DBMS에 맞추어 데이터를 표현하는 논리적 데이터 모델링을 거친다. 그다음 데이터베이스와 관련되는 프로그램이 개발된다. 즉 개념적 데이터 모델링 → 논리적 데이터 모델링 → DBMS 관련 프로그램 개발 데이터 모델 : 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합 데이터 모델링 : 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정 사용자 요구사항 분석 단계 사용자 요구사항 분석..
[React.js] React 사용을 위한 Node.js - 프로젝트 & npm
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. 프로젝트 & npm 프로젝트를 생성하고 다른 사람들이 올린 외부 모듈을 사용해보자. npm? Node Package Manager의 약자로 Node.js의 패키지 관리 도구이다. 다른 사람들이 만들어 놓은 모듈들을 내려받아 사용할 수 있도록 해주거나 개발할 프로젝트를 관리하는데 도움을 주는 도구이다. Package? package는 누군가 따로 만들어 놓은 Node.js 모듈을 의미한다. 이 패키지를 npm을 이용하여 모듈들을 내려받을 수 있다. package 파일을 효율적으로 관리하기 위해 새로운 폴더를 만들어 VSCode에서 오픈한다. 그리고 터미널(Ctr..
[React.js] React 사용을 위한 Node.js - Hello World & Common JS
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. Hello World & Common JS Node.js는 프로그래밍 언어가 아니고 그냥 자바스크립트의 실행환경, Runtime이기 때문에 여태까지 자바스크립트를 사용하던 그대로 사용하면된다. VSCode를 열고 index.js 파일에 console.log를 찍어보자. 이제 작성한 js 파일을 실행해야한다. js 파일을 Node.js로 실행하려면 터미널이 필요하다. 터미널을 열어보자 터미널은 상단 메뉴 View - Appearance > Show Panel을 클릭하거나 Ctrl+J 단축키를 눌러 열 수 있다. 터미널? 우리가 일반적으로 컴퓨터를 이용할 때 명령..
[운영체제] 프로세스 개요
·
방통대 컴퓨터과학과/3학년1학기
프로세스 프로세스 : 실행중인 프로그램 프로그램이 실행되는 순간에 PID(process id) 부여 → 프로그램 이름으로 프로세스들을 구분하기는 어려움 프로그램 : 동작을 하지 않는 정적 • 수동적인 개체 프로그램을 실행시키려면 CPU, 메모리, 입출력장치, 파일 등의 자원을 할당받아 동작 프로세스는 프로그램과 달리 동작을 하는 능동적인 개체로 봄 스풀링과 같은 시스템 태스크도 각각 하나의 프로세스가 된다. 프로세스의 동작은 CPU가 그 프로세스의 명령들을 실행하는 것 운영체제는 실행할 준비가 된 프로세스들이 적절히 CPU를 배정받아 효율적으로 작업을 처리할 수 있도록 관리해야 함 결론은 운영체제는 프로세스들을 생성시키고, 종료시키기 위한 작업들과 프로세스들을 실행시키기 위한 스케줄링 작업(CPU 할당)..
[Java] Java와 객체지향 프로그래밍
·
방통대 컴퓨터과학과/3학년1학기
Java 언어와 Java 프로그램 Java 언어 Java는 미국 선 마이크로시스템즈(Sun Microsystems)라는 회사가 1990년 말에 개발하기 시작해 1996년에 첫 버전이 발표된 객체지향 프로그래밍(OOP, Object-Oriented Programming) 언어이다. Java는 프로그래밍 언어와 실행환경(Runtime)을 함께 포함하고 있다. 즉, Java 언어로 작성된 프로그램의 실행환경으로 기존 운영체제를 사용자히 않고 별도로 만들어진 'Java 플랫폼'을 사용한다. Java는 문법적으로 C나 C++과 유사하지만 가장 큰 차이점이 있는데 이는 바로 Java가 완전한 객체지향 프로그래밍 언어라는 점이다. Java 프로그래밍 언어의 특징 Java는 별도의 실행환경이 있기 때문에 운영체제와 무..
[React.js] React 사용을 위한 Node.js - Node.js 설치하기
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. Node.js 설치하기 Google에 Node.js 검색 최상단 Node.js 선택 두 가지 버전을 다운받을 수 있는데 LTS가 붙은 버전은 기업에서 사용해도 될만큼 안정화되었고 신뢰도가 높은 버전이고 오른쪽의 현재 버전은 현재 버전으로 최신 기능들을 이용할 수 있으나 안정성과 신뢰성이 좀 떨어진다. 그러니 LTS 버전으로 다운 하단의 다운로드가 완료되면 클릭한다. 다운은 크게 어려운 게 없다. 체크 박스가 나오면 다 체크하면 된다. 경로도 기본으로 놔두면 된다. Next....!! 완료 설치가 잘 됐는지 확인해보자. cmd 실행 node -v npm -v 이..
[React.js] React 사용을 위한 Node.js - Node.js란?
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. Node.js 어? 우리가 배우려는 건 React.js인데 왜 Node.js가 나오나요? 바로 React.js가 Javascript의 라이브러리이기 때문이다. 오 그건 알겠어요. 근데 Javascript랑 Node.js랑 무슨 연관이 있는데요? 자, 전에 자바스크립트로 작성된 코드는 브라우저에 있는 자바스크립트 엔진을 이용하여 실행한다고 했었다. 우리가 아는 브라우저만 해도 크롬, Edge, Safari 등이 있는데 이 각 브라우저마다 자바스크립트 엔진이 상이하다. Safari - Nitro Firefox - Spider Monkey Chrome - V8 Ed..
[C언어] C 언어의 정의
·
방통대 컴퓨터과학과/3학년1학기
C 언어의 정의 C 언어는 프로그래밍 언어이다. 프로그래밍 언어 : 인간과 컴퓨터의 대화에서 사용되는 의사소통 수단 컴퓨터는 0과 1로 구성된 기계어만 이해할 수 있고, 인간은 인간의 언어를 사용한다. 이 두 개체 간의 원활한 의사소통을 돕는 수단이 바로 프로그래밍 언어이다. 인간이 컴파일러에게 프로그래밍 언어를 사용하여 프로그램을 작성한 파일을 보내면, 컴파일러는 컴퓨터가 이해할 수 있도록 프로그래밍 언어를 기계어로 변환하는 역할을 수행한다. 어셈블러는 컴파일러와 컴퓨터 사이에 존재하는데, 컴파일러가 번역한 기계어에 가까운 어셈블리 코드를 기계어(0, 1의 바이너리 코드)로 변환하는 작업을 한다. 즉 2차 번역인 셈이다. C 언어와 같이 인간이 이해하기 쉬운 언어(나는 왜 어렵지?)에 가까울수록 고급 ..
[React.js] React 사용을 위한 자바스크립트 응용 - API & fetch
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. API API에 대한 정의는 구글에 검색하면 위키백과에 잘 나와있다. 여기로 굳이 내용을 가져오지 않는 이유는 그걸 봐도 와닿지가 않아 이해가 불가능하기 때문이다. API를 좀 더 쉽고, 와닿게 설명하기 위해 레스토랑을 차렸다. 손님이 레스토랑에 방문해 음식을 먹으려면 총 4단계가 필요하다. 주문 주방장이 재료를 찾는다. 찾은 재료로 요리한다. 서빙한다. 이 네가지 과정이 웹사이트에서 어떠한 정보를 가져오는 방식과 유사한 방식이다. 위의 것과 웹사이트 동작 방식을 약간 섞어서 얘기해보자면, 클라이언트(손님)이 서버(주방장)에게 Request(주문)한다. - 데..
[React.js] React 사용을 위한 자바스크립트 응용 - async & await
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. async async는 function 키워드 앞에 선언한다. async function helloAsync() { return 'hello Async'; } function 앞에 async를 붙이면 해당 함수의 return 값은 항상 Promise 객체를 반환하게 된다. 위의 함수의 경우는 return값이 Promise가 아니지만 놀랍게도 async를 붙여주면 이행 상태의 Promise(resolved promise)로 값을 감싸 반환된다. async function helloAsync() { return 'hello Async'; } console.log(..
[React.js] React 사용을 위한 자바스크립트 응용 - Promise
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. Promise 동기와 비동기에 대해 포스팅했을 때 마지막에 콜백 지옥(callback hell)을 잠깐 얘기했었다. Promise에 대해 알아보기 전에 먼저 비동기 작업이 가질 수 있는 3가지 상태에 대해 알아보자. 비동기 작업이 가질 수 있는 3가지 상태 Pending 현재 비동기 작업이 진행중이거나, 현재 이 작업이 시작할 수 없는 문제가 발생했음을 의미한다. Fulfilled 이행 또는 성공 상태로 이 비동기 작업이 우리가 의도한대로 정상적으로 완료된 상태를 의미한다. Rejected 거부 또는 실패 상태로 비동기 작업이 모종의 이유(서버 비응답, 시간 ..
[React.js] React 사용을 위한 자바스크립트 응용 - 동기&비동기
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. 동기&비동기 동기와 비동기 파트는 자바스크립트의 실행방식과 매우 연관이 깊다. 자바스크립트 엔진이 동작하는 원리까지 파악해보자. function taskA() { console.log("TASK A"); } function taskB() { console.log("TASK B"); } function taskC() { console.log("TASK C"); } taskA(); taskB(); taskC(); 세 개의 함수가 작성되어 있고, task A B C 순서대로 함수를 호출한다. 그럼 콘솔에는 당연히 호출한 순서대로 출력됐을 것이다. 자바스크립트는 단일..
[React.js] React 사용을 위한 자바스크립트 응용 - Spread 연산자
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. spread 연산자 객체를 다루는 또 다른 방법이다. 맛있는 쿠키를 만들어보자. const cookie = { base : "cookie", madeIn : "korea" }; const chocohipCookie = { base : "cookie", madeIn : "korea", toping : "chocochip" }; const blueberryCookie = { base : "cookie", madeIn : "korea", toping : "blueberry" }; const strawberryCookie = { base : "cookie", made..
[React.js] React 사용을 위한 자바스크립트 응용 - 비 구조화 할당
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. 비 구조화 할당(=구조 분해 할당) 배열과 객체에서 원하는 값을 더 빠르고 쉽게 가져올 수 있는 방법이다. 한 배열이 있을 때 그 배열의 값을 모두 출력하고 싶을 땐 어떻게 하는 게 좋을까? let arr =["one", "two", "three"]; let one = arr[0]; let two = arr[1]; let three = arr[2]; console.log(one, two, three); // one two three 위와 같은 방법도 쓸 수야 있겠지만 배열의 요소가 많을 수록 입력해야 할 코드량이 많아진다. let arr =["one", "tw..
[React.js] React 사용을 위한 자바스크립트 응용 - 조건문 업그레이드
·
공부/React.js
React 게시글은 대부분 인프런의 '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 강의를 기반으로 내용을 정리했습니다. 조건문 업그레이드 기존에 사용하던 조건문을 배열 내장 함수를 이용해 조금 더 간략하고 멋지게 써보자. 일단 기존에 사용하던 방식대로 조건문을 작성해보자. // 주어진 음식이 한식인지 아닌지 판별 function isKoreanFood(food) { if(food === '불고기' || food === '비빔밥' || food === '떡볶이') { return true; } return false; }; const food1 = isKoreanFood("불고기"); console.log(food1); // true const food2 = isKoreanFoo..