CodeIt!/컴퓨터개론

프로그래머 세계 이해하기

JakeSJK 2023. 3. 9. 15:28

프로그래밍의 다양한 분야

컴퓨터 사이언스의 기본기

객체지향프로그래밍, 알고리즘, 자료구조는 모든 프로그래밍 언어의 기초입니다.

소프트웨어 공학

소프트웨어로 제품/서비스를 만드는 공학(프로세스)[기획-개발-테스트-배포-유지/보수]

프로세스 관리

WaterFall / Agile 방식이 있습니다.
Waterfall의 단점은 결과물이 나와야 문제점을 발견할 수 있고, 발견했다면 갈아 엎어야 하니 문제가 많아질 수 있습니다.
Agile방식은 Waterfall의 단점을 극복하기 위해, 유연한 대처를 하기위해서 만들어진 방식입니다. 단 Agile방식은 프로젝트 방식이 복잡해질 수 있습니다.

테스트 프로세스

자동화 테스트 도구나 테스트 코드를 통해서 테스트 단계를 가집니다.
현업에서 테스트 과정은 버그 관리 툴을 통해 (지라,트렐로,아스나) 버그를 발견 시 이슈를 만들어 제보하여 공유합니다.
이슈의 상태 [오픈 - 인프로그레스 - 리졸브 - 클로즈 - 리오픈] 및 Assign(담당자)를 배정하여 해결합니다.

버전관리

프로그래밍하다보면, 코드 수정은 잦게 발생합니다. 변화에 따라 어떤의도로, 어떤코드를 수정했는지 확인하는 방법을 알기 위해서 '버전관리'를 합니다.
이는, Git, Github를 통해서 관리합니다. Git을 활용해 버전을 나눠서 Branch별 기기별 관리를 할 수 있으며, 개발자들과 협업하기 위해서는 꼭 알아야하는 필수 역량입니다.

개발자들의 필수 프로그램 IDE(통합개발환경: Integrated Development Environment)

개발자들이 코딩할 때 도움이 되는 기능을 모아둔 프로그램 (VScode, IJ)
IDE의 장점: 작업시간을 압도적으로 낮춰 시간을 효율적으로 사용할 수 있다.

트렌드를 읽는 능력

프로그래밍은 선택의 연속
트렌드를 읽는 방법
  1. 좋은 언어, 프레임워크, 기술을 쓰면 커뮤니티가 활발해지고 이는 선 순환체계를 이룹니다.
  2. 인정받는 기술을 확인한다.
    : 회사들이 어떤 기술들을 사용하고 있는지, 요구하는지 확인한다.
    : 유명한 회사의 블로그를 참고한다.
  3. 유망한 기술들을 확인한다. (Trend Tech)