본문 바로가기

실전 단아 개발 가이드

개발자가 기본적으로 갖추어야 할 지식들

반응형

개발자가 기본으로 알아야 하는 대표적인 필수 지식 입니다.

- 자료구조

- 알고리즘

- 객체 지향 프로그램

 

개발자 업무

- 기획 : 정의하는 업무

- 제작(개발) : 만드는 업무

- 테스트 : 확인하는 업무

- 출시(배포) : 사용하는 업무

- 사후관리(유지/보수) : 정상적으로 사용 할 수 있도록 유지하고 보수하는 업무

 

개발 방법론

폭포수(Waterfall), 애자일(Agile) 등 방법론은 시간 될 떄 공부하면 좋다.

단, 개발자가 현재 프로젝트의 업무에 흐름을 알아야하며 지금 할일과 앞으로 할 일을 알고 하는 것과 모르고 하는 것의 차이는 얼마나 큰 것 인가 생각해 봐야 한다.

 

관리자, 기획자, 개발자, 디자인너, 테스터, 사용자

 

오류(테스트) => 이슈[Open->In-progress->Resolved->Closed->Reopen)

리스크

형상화 도구(Git, Github, SVN)

- Source Tree 사용 추천

- 최근 SVN보다는 Git을 이용하여 여러 버전(Branch)을 관리 할 수 있어 많이 사용한다.

 

 

개발자 도구들(IDE:통합개발환경)

- IJ

- Visual Studio Code

- 이클립스

ex) 우리 프로젝트는 Front(React)는 Visual Studio Code를 사용하고 비지니스(Java)와 배치(Java)는 IJ를 사용한다.

 

프로젝트 관리 툴인 Jira, Trello, Asana, Confluence 메신저인 Slack, Skype, Jandi 디자인 협업 툴인 Sketch

 

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

 

https://stackshare.io/

 

StackShare - Tech Stack Intelligence

StackShare is a Tech Stack Intelligence platform and community helping teams to make data-driven technology decisions.

stackshare.io

 

개발 할 때 선택해야 하는 요소 들

- 프로그램언어

- 라이브러리

- 프레임워크

- 디자인패턴

- 스타일가이드

 

개발 커뮤니티

- stackoverflow

- Quoramedium

 

Reddit

Quora

 

객체지향 프로그램

장점
데이터 또는 기능의 변화에 좀더 쉽게 대응 할 수 있고 해당 변경되는 객체 만 수정하므로 비용이 적다.
의미 있는 단위로 나누어 블럭 단위로 제작하기 때문에 이해하거나 재사용하기 쉽고 일부 기능만 사용 할 수 있기 떄문에 테스트 및 진척 관리에 유리 하다.

단점

이론적으로는 이상적이지만 현실은 개떡 같다. 의미 있는 단위로 나누고 정의하는 것이 생각보다 휠씬 어렵고 초반에 엄청 뛰어난 개발자가 기준을 잘 잡지 않으면 지옥이다.

 

객체 지향의 단점은 코드를 잘 나누고 설계하는 것이 어렵다.

 

초반 설계부터 많은 노력이 든다 그러나 한국의 현실은 대기업에서도 분석/설계 없이하는 곳도 있는 만큼 단납기에 급하게 만들면 그냥 해당 개발자만 아는 프로그램으로 새로운 사람이 수정하려고하면 죽음이다.

굳이 객체 지향적으로 만들 필요가 없는 경우에는 멋 부리지 말고 그냥 쉽게 코딩하는 것을 추천 한다.

 

쓸떄없이 의미을 두다가 코드도 많아지고 효율성도 떨어져 속도도 느리고 새로운 사람이 이해하기 힘들고 "화면하나 가지고...  나는 지금 코드 관련하여 지도 그리고 있다."

 

Dynamic typing Vs Static typing

Dynamic typing Static typing
코딩 속도 빠름 코딩 속도 느림
실행 속도 느림 실행 속도 빠름
코드 쉬음 코드 체계적임
배우기 쉬음 배우기 어려움
작은 규모 빠르게 대규모 프로젝트 적합

 

 

추상화

 

 

좋은 코드

- Comment

- 변수, 함수, 메서드 이름 : 옮고 그름에 문제가 아니라 사이트 상황에 따라 규칙을 잘 숙지하고 생성하세요.

 

 

 

Python 공식 스타일 가이드
https://www.python.org/dev/peps/pep-0008/

Google Python 스타일 가이드  
https://github.com/google/styleguide/blob/gh-pages/pyguide.md

JavaScript 표준 스타일 가이드  
https://standardjs.com/

Airbnb JavaScript 스타일 가이드  
https://github.com/airbnb/javascript

Google JavaScript 스타일 가이드  
https://google.github.io/styleguide/jsguide.html

Java 스타일 가이드
Java를 소유한 회사 오라클의 스타일 가이드  
https://www.oracle.com/technetwork/java/codeconvtoc-136057.html

Google Java 스타일 가이드  
https://google.github.io/styleguide/javaguide.html

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Alyssa Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python

peps.python.org

 

디자인 패턴

 

좋은 코드 찾기
코드를 공부할 만한 라이브러리
Seaborn 라이브러리 - https://seaborn.pydata.org/tutorial.html 
Pandas 라이브러리 - https://pandas.pydata.org/docs/user_guide/10min.html

언어의 공식 사이트
Python - https://docs.python.org/ko/3/ 
Javascript - https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide 
Ruby- https://www.ruby-lang.org/ko/documentation/ 
Java- https://docs.oracle.com/en/java/

 

 

 

 

 

실전 단아 개발 가이드

반응형

'실전 단아 개발 가이드' 카테고리의 다른 글

Node.js 가이드  (0) 2023.11.12
Express 간단 정리  (0) 2023.11.12
모바일 웹 간단 정리  (0) 2023.11.12
웹 개발 간단 정리  (0) 2023.11.12
GoF 디자인 패턴  (1) 2023.11.12