본문 바로가기
프로그래밍 지식/기본지식

컴퓨터 사이언스의 기본기

by Ing_til_death 2021. 10. 19.

- 기본이 갖춰져있다면 다른 분야에도 잘 적응할 수 있는 게 프로그래밍.
- 컴퓨터 사이언스의 기본은 객체지향 프로그래밍 / 알고리즘 / 자료 구조 (어느 언어를 하든 필수적)
++ 부가적인 것: 컴퓨터 구조 / 운영체제 /컴파일러 / 웹개발 / 데이터베이스 / 네트워크

- 소프트웨어 공학: 기획-> 제작-> 테스트-> 출시(배포)-> 사후관리(유지, 보수) 등 모든 프로세스 포함.
// 현직 개발자분들에게 여쭤본 결과 일반적으로는 개발과 테스트 단계에서 가장 많은 문제가 발생하고 실제 사용자와의 링크가 실시간으로 유지되는 애플리케이션이나 온라인 환경에서는 유지와 보수에서 그보다 더 많은 문제가 발생한다
=> 매끄러운 진행과 효율적인 코드로 좋은 소프트웨어 완성

- 폭포수 협업 방식: 각 단계를 완전히 마치고 다음 단계로 넘어가는 방식이다.(기획->개발: 기획자가 필요한 것을 문서로 완성 등) 문제점: 한 단계에 다 완벽하게 만들기 어렵다. 처음부터 다시 만들어야할 수도. 각 단계가 복잡하지않으면 추천.
- 에자일(Agile) 협업 방식: 결과물을 미리 확인하고 수정하며 진행. 프로그램을 적당한 크기의 기능으로 나누고 각 기능에 대한 문서가 아닌 실제 동작하는 Sw로 확인하면서 서로 소통(보드->킥보드->자전거->오토바이->자동차) // 기획과 맞는지 검토할 수 있다. 써보면서 의견이 생길수도 있기에 좋다. 중간중간 사용하면서 발전하기 때문에 기능변경 유연
but 프로젝트가 복잡해진다. 각 단계마다 기획, 개발, 테스트, 배포 등을 시행하기에

 

GitHub Pages로 배포하기 _ Today DOWON Learnd.pdf
1.94MB


- 테스트 프로세스: 반복적인 일이기에 자동화 테스트 도구, 테스트 코드 등을 활용, test 단계도 있다.(상황마다 다른 에러)
- 버그: 시급성, 담당자(Assing 지정), 빼먹은 버그는 없는지, 잘 고쳐졌는지 확인 고려 => 버그 관리: Jira 등
- 버전관리: 깃(버전 관리를 하는 소프트웨어) 저장방식: 원본을 만들면, 수정은 수정사항만 저장(각 버전에서 어떤 수정, 왜 그런 수정을 했는지 기록) + 하나의 뿌리에서 여러개로 branch(기기별 혹은 등급별 등) 
## 동료개발자가 이것만큼은 꼭 알았으면 좋겠다 =>> Git은 항상 최상위권. 반드시 버전관리를 할 줄알아야 같이 일할 수 있다. 

 

버그에 대한 설명을 이슈라고 한다 (출처: 코드잇 )
이슈의 상태 (출처: 코드잇 )

 


- IDE: 통합개발환경 ex) VSC. intellij, eclipse 등 개발자 모니터에 항상 켜져있다. 
// 보통 주변을 보면 팀단위의 프로젝트들은 pycharm 을 많이 쓰는 것 같고, 사이드 프로젝트 같은 가벼운 프로젝트들은 vs code 도 많이 쓰는 것 같습니다. 장단점에 대해선 https://www.quora.com/Which-is-better-PyCharm-or-Visual-Studio-Code 을 참고해보셔도 좋을 것 같아용^^

- 유용한 프로그램들
IDE 외에도 개발자들이 많이 사용하는 프로그램들을 살펴보자면
프로젝트 관리 툴인 Jira, Trello, Asana, Confluence
메신저인 Slack, Skype, Jandi
디자인 협업 툴인 Sketch

회사마다 쓰는 것들이 다르긴 하지만, 대략적으로 파악하고 있으면 나중에 일할 때 더 적응하기 쉽고 편하겠죠? 
시간 내서 이런 툴들을 한번씩 살펴보는 걸 추천합니다.

StackShare에 가면, 개발자 혹은 개발팀에서 사용하는 다양한 툴을 찾아볼 수도 있습니다.

## 트렌드를 읽는 능력
- 라이브러리와 프레임워크 고르는 것에 신중해야한다. 시간 투자가 많이 된다. 프로그래밍 언어도 마찬가지다.
==> 어떤 프레임워크, 라이브러리, 언어, 디자인패턴, 스타일 가이드를 사용해야할지 고민(유행 빠르고....)
=====> 스스로 트렌드를 판단하고 읽어내는 능력이 필요하다.

기준
1. 기술이 얼마나 활발한지? + 많은 사용자가 있는지? => 자료, 정보가 방대함  from 커뮤니티, 관련 자료 

2. 인정받는 기술(대세를 따르기)
- from statckshare //회사들이 사용하는 언어와 프레임워크, 라이브러리, 기술이 무엇인지 알려준다.  => 이런 기술정보들을 기술스택이라고한다. 

++ 기업에서 만들거나 지원하는 기술
- react(facebook), java(oracle), Angular.js, Go(google), swift(Apple) // 안정적으로 발전할 가능성이 높다.

++ 기술블로그들: medium, Reddit, Quora, Naver, kakao, woowahan 등에서 좋은 자료들이 많다.

남의 코드에서 배우기 _ 수업 상세.pdf
0.27MB


3. 얼마나 유명한 기술인가?
- 산업적인 이유로 추세가 바뀔 수 있다.
=> IT의 큰 흐름을 파악하는 것이 중요하다.  from gartner 사이트에서 기술트렌드를 알려준다. 요즘에는 웹이 인기라서 JS가 대세.

 

### 영어 학습: 책 "IT 개발자의 영어 필살기 "

 

꿀팁 노트_ 프로그래머에게 영어는 필수인가요_ _ 수업 상세.pdf
0.48MB

 

'프로그래밍 지식 > 기본지식' 카테고리의 다른 글

소프트웨어  (0) 2021.10.19
프로그래밍 언어  (0) 2021.10.19
객체지향언어  (0) 2021.10.19
웹 브라우저 및 HTTP  (0) 2021.10.19
기본  (0) 2021.06.15

댓글