프로그래밍
-
[Node.js 2강] Nodejs Express 웹앱 개발 Nodejs Express Web App Development프로그래밍/NodeJS 2017. 11. 28. 14:08
본 강의는 생활코딩 강좌를 바탕으로 복습하며 진행되는 코드들을 재구성한것입니다. 일부 코드들의 경우 호환성의 이유로 원본의 강좌와 다를수 있음을 알려드립니다.NodeJS 6.11.0 LTS, Express 4.X 버전에서 완벽하게 작동하는것을 확인하였습니다. 이번에는 Node와 Express를 사용한 웹 애플리케이션을 개발해보도록 하겠습니다. 라우트라고 하나요? 코드를 보시면 아시겠지만 Express를 사용하면 일반적으로 우리가 보이는 웹 링크 주소에서 라우팅 링크를 생성할수가 있습니다. 위의 링크를 살펴보시면 app.get 다음에 / 를 확인하실수 있을겁니다. 여기서 /란 최상위 디렉토리를 의미합니다. 그리고 아래의 /login 디렉토리를 확인하실수 있는데요. 127.0.0.1:3000/login으로 ..
-
[Node.js 1강] 간단한 웹 애플리케이션 만들기 Create a Simple Web Application프로그래밍/NodeJS 2017. 11. 28. 12:44
본 강의는 생활코딩 강좌를 바탕으로 복습하며 진행되는 코드들을 재구성한것입니다. 일부 코드들의 경우 호환성의 이유로 원본의 강좌와 다를수 있음을 알려드립니다.NodeJS 6.11.0 LTS, Express 4.X 버전에서 완벽하게 작동하는것을 확인하였습니다. NodeJS 강좌를 시작해보겠습니다. Github에는 끝까지 진행해서 코드를 전부 올려두었는데.. 이게 시간이 지나다보니 또 까먹어서 다시 한번 복습진행차원으로 작성해보려합니다. 일단 프로그래밍 언어의 시작은 항상 Hello World이지요. NodeJS를 이용해서 서버를 만들어 Hello World 을 찍어보는 소스코드를 개발해보도록 하겠습니다. 참고로 이 코드는 NodeJS 공식 홈페이지에도 동일하게 올라와있습니다 ㅎㅎ. 저의 경우에는 포트는 L..
-
UNIX와 Windows 운영체제 UNIX and Windows operating system프로그래밍/컴퓨터 운영체제 2017. 11. 27. 19:44
# UNIX의 개요- 시분할 시스템(Time Sharing System)을 위해 설계도니 대화식 운영체제- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음- Multi-User, Multi-Tasking을 지원함- Multi-Tasking : 하나 이상의 작업을 백그라운드에서 수행하므로 여러 작업을 동시에 처리할 수 있음- 많은 네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합함- 트리 구조의 파일 시스템- 프로그램 개발에 용이함- 다양한 유틸리리 프로그램들이 존재함 # UNIX의 개요- 사용자 (User)- 유틸리티 (Utility)- 쉘 (Shell)- 커널 (Kernel)- 하드웨어 # UNIX 시스템의 구성- 커널 (Kernel) : UNI..
-
소프트웨어 공학의 발전적 추세 Evolution of Software Engineering프로그래밍/컴퓨터 공학 2017. 11. 27. 16:11
# 소프트웨어 재사용의 개요- 이미 개발되어 있는 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것- 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법으로 기존에 개발된 소프트웨어와 경험, 지식등을 새로운 소프트웨어에 적용함- 클래스, 객체 등의 소프트웨어 요소는 소프트웨어 재사용성을 크게 향상시켰음- 소프트웨어 부품(모듈)의 크기가 작고, 일반적일수록 재사용률이 높음 # 재사용이 가능한 요소- 전체 프로그램- 프로세스 구조- 부분 코드- 시험계획- 응용 분야에 관한 지식- 설계에 관한 결정- 논리적인 데이터 모형- 시스템 구조에 관한 지식 등 # 소프트웨어 재사용의 장점- 개발 시간과 비용을 단축- 소프트웨어 품질 향상- 소프트웨어 개발의 생산성 향상- 프로젝트 실..
-
소프트웨어 프로젝트 계획 Software Project Planning프로그래밍/컴퓨터 공학 2017. 11. 25. 17:05
# 프로젝트 관리 (Project Management) - 소프트웨어 프로젝트를 조직하고 (Organizing), 계획하며 (Planning), 일정 관리(Scheduling)하는 것 - 주어진 기간 내에 최소 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동 - 프로젝트 계획 - 프로젝트가 수행되기 전에 소프트웨어 개발 영역 결정, 필요한 자원, 비용, 일정등을 예측하는 직업 # 효과적인 프로젝트 관리를 위한 3P(3대 요소) 1. 사람 People 2. 문제 Problem : 사용자 입장에서 문제를 분석하여 인식 3. 프로세스 Process : 소프트웨어 개발에 필요한 전체적인 작업 계획 - 소프트웨어 프로젝트 비용 추정 - 프로젝트를 수행하는 데 필요한 직,간접적인 비용을 예측하는 ..
-
소프트웨어 개발 생명주기 모델 Software Development Life Cycle Model프로그래밍/컴퓨터 공학 2017. 11. 25. 16:34
# 폭포수 모형 (WaterFall Model) - 가장 오래된 모형임 - 많은 적용 사례가 있지만 요구사항의 변경이 어려움 - 각 단계의 결과가 확인된 후에야 다음 단계로 넘어감 - 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함 # 프로토타입 모형 (원형 모형) - 사용자의 요구사항을 정확하게 파악하기 위해 실제 개발될 소프트웨어에 대한 시제품 (Prototype)을 미리 만들어 최종 결과물을 예측하는 모형 # 나선형 모형 (점진적 모형) - 보헴(Boehm)이 제안한 것으로 폭포수 모형과 프로토타입 모형의 장점에 새로운 요소인 위험 분석(Risk Analysis)을 추가한 모형 - 나선을 따라 돌듯이 여러번의 소프트웨어 개발 과정을 거쳐 점진적으로 (프로토타입을 지속적으로 발전시켜) 완벽한 최..
-
소프트웨어 개발 방법론 Software Development Methodology프로그래밍/컴퓨터 공학 2017. 11. 25. 16:31
# 소프트웨어 개발 방법론 개요 - 소프트웨어 개발 방법론은 개발방법, 개발환경, 개발관리 등을 포함함 - 소프트웨어 공학 패러다임 또는 소프트웨어 생명주기 모형이라고 함 - 많이 사용되고 있는 4가지 소프트웨어 공학 패러다임 1. 폭포수 모형 (Waterfall Model) 2. 원형 모형 (Prototyping Model) 3. 나선형 모형 (Spiral Model) 4. 4세대 기법 (4th Generation Techniques) - 소프트웨어 공학 패러다임의 선정은 프로젝트의 성격, 소요되는 기간, 방법과 도구 등에 의해 이루어짐 # 구현 (Implementation) - 설계의 결과를 사용자가 이용할 수 있는 모습으로 변환하는 것 - 시스템의 기능이 수행 가능한 모습으로 나타남 - 프로그래밍 ..
-
소프트웨어 공학의 개요 Overview of Software Engineering프로그래밍/컴퓨터 공학 2017. 11. 24. 13:54
# 소프트웨어공학 소프트웨어 공학 = 인간에게 필요한 프로그램과 프로그램의 개발, 운용보수에 필요한 관련 정보 일체 - 공학적 원리에 의하여 소프트웨어를 개발하는 학문 - 소프트웨어 개발, 운영, 유지보수 및 폐기에 대한 체계적인 접근방법 - 소프트웨어 제품의 체계적인 생산, 유지보수와 관련된 기술, 경영에 관한 학문 - 과학적인 지식을 컴퓨터 프로그램 설계와 제작에 실제 응용하여 문서화 - 소프트웨어 공학의 목표 : 관련 프로젝트를 주어진 시간과 비용, 자원의 범위 내에서 최고 품질의 소프트웨어를 생산 # 소프트웨어 공학의 기본 원칙 1. 현대적인 프로그래밍 기술 적용 2. 지속적인 검증 시행 3. 결과에 대한 명확한 기록 유지 # 소프트웨어의 품질 1. 유지보수가 용이해야함 2. 사용자가 원하는 대로..