강의 내용 정리(126)
-
오픈소스 SW개발 (5), GitHub
GitHub 1. GitHub란? 1) GitHub란? 형상관리 툴인 Git 레포지토리를 지원하는 웹서비스 깃허브란 전세계적으로 널리 알려진 형상관리툴인 깃 저장소를 지원하는 웹서비스로 현재 많은 오픈소스가 깃허브를 통해서 관리되고 있고, 기업도 깃허브 엔터프라이즈를 통해서 많은 소프트웨어를 관리하고 있다. 이는 리포지토리를 생성해서 사용할 수 있다. 2) GitHub 특징 (1) Fork 오픈소스 툴을 개발하고 있는데 이에 기여하기 위해서는 여기에 commit하고 push할 수 있는 권한이 있어야한다. 이때 누군지 모르는 사람에게 commit, push의 권한을 주기 어렵기에 remote repository를 복제해서 해당 repository에서 commit, push를 할 수 있도록 한다. 이에 따라..
2022.04.14 -
소프트웨어 공학 (5), Agile software development
Agile software development 웹 기반, 비즈니스에서 많이 사용하는 개발 기법 1. 소프트웨어 비즈니스의 발전 Past: Software 중심 한글, 어도비 포토샵, 마이크로 소프트 윈도우 OS, Office, CD/DVD 등 과거에는 소프트웨어 자체가 비즈니스로 활용되는 경우가 많았다. 한마디로 소프트웨어를 직접 판매하여 수익을 창출하는 경우가 대부분이었다. 따라서 패키지형태로 소프트웨어를 제공하는 경우에는 소프트웨어를 개발과 관련된 사람이 많이 필요하고 문서를 만들 필요가 있었다. Windows 9x, Office 2xxxx와 같이 소프트웨어 개발 주기는 연단위일 정도로 개발 기간이 매우 길었고, 많은 사람들이 투입되기에 비용도 많이 소모됐다. 이 당시에는 목표로 가지고 있는 데드라..
2022.04.14 -
컴퓨터 네트워크(2-2), MAC Layer
MAC Layer 줄이 연결되었을 때 스테이션과 통신을 하기 위해서 어떻게 접근하는가를 중점적으로 파악 방식 1. Random Access Protocols 알아서 독립적으로 분산해 스테이션에 접근하는 프로토콜 - 규칙에 맞춰서 송신하고자 하는 스테이션이 있으면 그냥 송신한다. 따라서 충돌이 발생한다는 단점이 있다. - 초창기 프로토콜이기에 다른 스테이션의 상황 고려 않고 독립적으로 동작한다. 1) ALOHA 이름에서도 알 수 있듯이 하와이에서 1970년대에 만든 초창기 랜덤 엑세스 프로토콜이다. (1) ALOHA란? - 하와이는 굉장히 많은 섬으로 이뤄졌기에 섬들간에 무선 통신을 했는데 보내는 데이터가 많지 않아서 그냥 랜덤 엑세스 프로토콜을 활용했다. - 정해진 일정 시간 동안 응답이 없으면 랜덤 값..
2022.04.14 -
컴퓨터 네트워크(2-1), Basic Terminologies
Basic Terminologies 여러 단말 장치들의 공유 매체(Shared Medium) 사용에 대한 충돌 발생을 제어하는 방식 1) Five Basic Terminologies (1) Message 정보를 가지고 통신되는 것을 의미한다. text, numbers, pictures, sound, video 등에 대해 메세지, 패킷 등이라 표현한다. (2) Sender 메세지를 송신하는 디바이스로 컴퓨터, 휴대전화, 비디오 카메라 등이 될 수 있다. (3) Receiver - Sender가 보낸 메세지를 수신하는 디바이스로 Sender와 마찬가지로 컴퓨터, 휴대전화, 비디오 카메라 등이 될 수 있다. (4) Medium - 통신매체로 1계층에서 사용되는 물리적인 길을 의미한다. 구리동선, 케이블, 라디..
2022.04.14 -
소프트웨어 공학 (4), 소프트웨어 프로세스 2
소프트웨어 프로세스 2 1. Process Activities 1) 디자인과 구현 요구사항에 대한 명세를 실제 시스템으로 만들기 전에 진행하는 단계 전통적으로는 이 둘을 구분하지만 웹, 비즈니스 기반인 경우에는 둘을 혼용해서 사용하기도 한다. 하지만 아직까지도 이 둘을 구분하지 않았을 때 리스크가 큰 경우에는 둘을 구분해서 사용하는 경우가 많다. (1) 디자인 요구사항에 대한 소프트웨어의 특성, 객체, 클래스 등을 구현하기 전 단계에서의 설계를 의미한다. 전통적인 입장에선 구현과 관련된 것들과는 독립적으로 이야기한다. 최근에는 agile이나 비즈니스 어플리케이션에서 디자인과 구현이 함께 이야기되고 있다. 즉, 디자인과 구현에 대한 구분은 주어진 비즈니스나 산업에 따라 달라질 수 있다는 점을 알 수 있..
2022.04.13 -
오픈소스SW개발 (4), Git Advanced
Git Advanced 0. Git 기타 개념 HEAD: 현재 branch의 포인트 Index: staging area에 위치한 다음 commit snapshot이 예정된 것 Working Directory: 수정하고 있는 폴더 1) Git working flow 2) add와 commit과 관련된 간단한 flow 예시 (1) git init을 통해 깃 폴더를 생성한다. (2) git add를 통해 파일을 추가한다. (3) git commit을 통해 add로 추가한 파일을 커밋한다. 이때 HEAD는 commit한 것을 가리킨다. (4) 파일을 수정한다. 그러면 working directory 상에서만 파일이 수정된다. (5) git add 명령어를 사용하면 Index의 내용도 바뀐다. (6) git co..
2022.04.11