Hello World!/공부 8

프로젝트 관리와 계획

프로젝트를 진행할 때 작업 수행에 필요한 여러가지 자원, 인력, 비용, 재료, 기술 등을 가장 효과적으로 사용하여 프로젝트의 목표를 달성해야한다. 하지만 개발 대상은 눈에 보이지 않아 진행 상황을 판단하기 어렵고 조직마다 프로세스도 다를 뿐 아니라 기술 발전이 매우 빠르기 때문에 '프로젝트의 관리' 가 필요하다. 프로젝트를 관리하기 위한 활동은 4가지로 분류할 수 있다. 계획, 조직, 모니터링, 조정 1. 먼저 프로젝트를 시작하면, 목표를 세우고 가치와 위험을 이해해야한다. 지속 가능성이 있는지 , 기술적인 어려움, 불확정성이 있는지 등등 그렇다면 이러한 가치는 어떻게 평가할까? 가치를 평가하는 방법에는 5가지가 있다. 1) 투자 회수 기간 : 투자금과 같은 금액을 벌어들이는데 걸리는 기간이 얼마일지 2..

Hello World!/공부 2020.11.13

리팩토링이란?

프로그램은 오늘 당장 기능이 실행되는 것도 중요하지만, 내일을 대비한 코딩을 해야한다. 리팩토링이란 이미 존재하는 코드를 안전하게 개선시키는 기술이다. 코딩 스타일 뿐만 아니라 성능, 구조 등을 개선시키는 과정으로 가독성을 높이고 유지보수를 편하게 하기 위한 것이다. 리팩토링을 하면, 1) 기존의 코드를 보다 효율적이고 통제된 방법으로 점진적으로 재구성 할 수 있다. 2) 리팩토링 후 바로 test 과정을 거쳐 시스템의 신뢰도가 향상된다. 3) SW를 보다 이해와 수정이 쉽게 만든다. 4) 겉으로 보이는 동작의 변화 없이 내부 구조를 변경한다. 리팩토링의 목적은, 1) 디자인 개선 2) 이해 쉽게 만듦 3) 버그 찾기 쉽게 도와줌 4) 빠른 프로그래밍을 가능하게 함 리팩토링의 예를 들자면 반복 사용되는 ..

Hello World!/공부 2020.11.13

네트워크 기초 TCP/IP, IPv4 와 IPv6

TCP/IP 프로토콜 프로토콜이란? 컴퓨터와 컴퓨터 사이에 데이터를 어떻게 주고받을 것인지를 정의한 통신 규약 즉, 같은 프로토콜을 사용하는 기기 간에는 통신이 가능하다. 인터넷에서는 TCP/IP 프로토콜에 따라 데이터를 주고받는다. TCP/IP 프로토콜은 5계층으로 구성되어 있는데, 계층별로 다양한 서비스를 제공하는 프로토콜이 지원된다. 계층 프로토콜 전송단위 응용 계층 ) 서비스 제공 응용 프로그램 DNS, FTP, SSH, HTTP, 텔넷 메시지 전송 계층) 응용프로그램으로 데이터전달, 데이터 흐름 제어 전송 신뢰성담당 TCP , UDP 세그먼트 네트워크 계층) 주소 관리 및 경로 탐색 IP, ICMP 패킷 링크 계층 ) 네트워크 장치 드라이버 ARP 프레임 물리 계층 )케이블 전송매체 구리선, 광..

Hello World!/공부 2020.10.06

알고리즘의 성능을 나타내는 복잡도

복잡도는 알고리즘의 성능을 나타내는 척도다. 복잡도 - 시간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지 의미 - 공간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지 의미 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 알고리즘 문제를 풀 때 '복잡도' 는 시간 복잡도이다. 시간 제한이 문제를 푸는 시간을 정한 듯하지만, 코딩 테스트에서는 작성한 프로그램이 모든 입력을 받아 이를 처리하고 실행 결과를 출력하는 데까지 걸리는 시간을 의미한다. 프로그램을 비효율적으로 코딩해서 시간제한을 넘긴다면 -> '시간초과' 와 함께 오답^^ 시간복잡도를 표현할 때는 빅오 표기법을 사용한다. 빅오 표기법 (아래로 갈수록 느림 !) 명칭 O(1) 상수 시간 O(l..

Hello World!/공부 2020.09.07

WAS 와 Web server 의 차이점

WAS (Web Application Server) 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크, 미들웨어로 볼 수 있다. ( php,jsp,asp 등 이처럼 중간에 있는 것들을 미들웨어 라고 한다.) WAS 는 동적 서버 컨텐츠를 수행하는 것으로 정적인 콘텐츠를 처리하는 웹 서버와 구분된다. 데이터베이스 서버와 같이 수행된다. - 클라이언트/서버 환경 보다는 웹 환경을 구현하기 위한 미들웨어 - Http 세션 처리를 위한 웹 서버 기능 뿐만 아니라 미션 - 크리티컬한 기업 업무까지 Java, EJB 컴포넌트 기반으로 구현이 가능하다. -대표적인 구축 소프트웨어에는 Apache 재단의 Tomcat, Tmax 사의 Jeus, IBM 사의 Web Sphere와 Ope..

Hello World!/공부 2020.09.02

http 와 https 의 차이

Http Http(Hypertext Transfer Protocol) 는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜이다. Http 는 서버/클라이언트 모델 요청 메서드: GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식 장점 : 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수 보다 훨씬 많은 요청과 응답을 처리할 수 있고 불특정 다수를 대상으로 하는 서비스에 적합하다. 단점: 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수 없다. 무상태 (Stateless) 이기 때문에 정보를 유지하기 위해서 Cookie와 같은 기술을 사용한다. Https 하이퍼 텍스트 전송 프로토콜 보안 (Hypertext Transfer ..

Hello World!/공부 2020.07.22

MVC 패턴이란?

M(model) - V(view) - C(controller) Model : 백그라운드에서 동작하는 로직을 처리한다. (데이터베이스에서 테이블 ) View : 사용자가 보는 화면을 구성한다. (html/css/javascript 등의 클라이언트 측 기술 ) Controller : 사용자의 입력처리와 흐름을 담당한다. (데이터를 model 에 요청하고 view에 반영한다.) 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴 중 하나인 MVC 모델은 소프트웨어 개발 방법을 공식화 한 것이다. 웹이나 앱을 만들 때 한 사람이 모든 것을 담당한다면 효율성이 떨어질 것이다. 이를 프로그래머, 디자이너 등 각자 맡은 역할을 효율적이고 쉽게 처리하기 위한 구조이다. 비지니스 처리 로직과 사용자 인터페이스 요소를 분..

Hello World!/공부 2020.07.10

운영체제

1. 운영체제 (OS, Operating System) : 일반 컴퓨터, 노트북, 스마트폰의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어 ex. PC 운영체제 (윈도우, Mac OS, 유닉스, 리눅스 등) , 모바일 운영체제 (iOS, 안드로이드 등) 임베디드 운영체제: CPU 의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제, 임베디드 운영체제가 있는 기계는 기능을 계속 향상할 수 있음 Q. 운영체제가 없으면 컴퓨터는 작동할 수 있을까? A. 작동은 가능하지만 기능에 제약이 있다. Q. 운영체제가 있는 기계와 없는 기계의 차이? A. 운영체제가 있는 기계는 다양한 응용프로그램을 설치하여 사용이 가능, 성능 향상을 위한 새로운 기능 쉽게 추가 가능 , 자원을 관리하고 사용자에게 편리..

Hello World!/공부 2020.03.21