일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kafka
- ssh log
- springboot Gradle
- MS-SQL
- c# 강의
- MSSQL
- OPC UA Client Write
- OPC DA
- ssh 접속 로그
- table용량
- Java 버전 여러개 사용
- JOIN DBMS별 차이점
- lock
- OPC Write
- delete truncate 차이
- CPU 사용량
- OPC UA Write
- Gradle 빌드 오류
- Gradle Jar
- mssql table 용량
- SCM
- Jar 경로
- Xamarin
- c#
- 스마트공장
- ssh 접속 실패 로그
- OPC
- Gradle JDK Path
- OPC UA
- kafka listener
- Today
- Total
IT’s Ha
[ETC]잘하는 개발자가 되는 방법 본문
안녕하세요.
오늘은 많은 신입 개발자나 예비 개발자가 가장 궁금한 내용을 정리하려고 합니다. 이번의 정리하는 글은 개인적인 견해가 많이 들어가 있습니다. 참고부탁드리겠습니다.
개발자와 코더를 들어보셨나요? 사전적인 의미는 크게 차이가 없습니다. 둘 다 코드를 쓰는 사람입니다. 그러나, 제가 생각하는 개발자와 코더는 많은 차이가 있습니다. 개발자는 일반적인 프로그래머라고 보시면 되고, 코더는 능력이 좋지 못한 프로그래머를 비꼬 우는 단어라고 생각이 듭니다. 과거에는 같은 느낌으로 사용했다면, 지금은 코더는 다르다고 생각합니다.
개발자와 코더의 차이 첫 번째는 개발자와 코더의 차이는 요구 사항의 처리 방식이라 생각합니다. 예를 들어 고객의 요구 사항이 들어왔습니다. 개발자는 만약 예상되는 문제가 있는지 판단을 하고, 프로그램이 잘 동작하도록 프로세스를 재정의 한 뒤, 검토 후 문제가 없다면 작업을 진행합니다. 그러나 코더는 그런 요구 사항이 없이 바로 작업을 진행합니다. 조금 과장된 이야기로 정리한 내용입니다. '대통령은 국민이 있기에 존재'하듯 또한 프로그램이 있기에 개발자도 존재합니다. 더 나아가 프로그램은 사용자가 있기에 존재합니다. 결국은 개발자는 사용자가 있기에 존재하는 논리가 나올 수 있습니다. 저는 '좋은 프로그램의 판단은 고객'이라 생각합니다.
두 번째는 언어의 집착성입니다. 이건 보통 신입이나 예비 개발자들이 생각하는 가장 큰 문제가 될 수 있습니다. 언어에 대해서 깊게 공부하는 것을 비판하는 것이 아닙니다. 당연히 언어는 가장 큰 기본 중 하나이니까요. 실제로 많은 후배들이 질문을 합니다. 언어 공부를 어떻게 하나요? 또는 언어 몇 개 사용하실 줄 아세요? 이러한 질문을 받을 때 당황스럽기도 합니다. 언어는 개발자의 필수 요소이지만, 좋은 개발자로서 언어의 사용능력은 별로 큰 영향을 가지지 않는다라고 생각을 하기 때문입니다.
지금부터는 제가 생각하는 잘하는 개발자가 되기 위해서는 두 가지 습관이 필요하다 생각합니다. 순서도 작성과 의사코드 작성입니다. 이 두 가지는 제가 가장 중요하게 생각하는 능력이고, 만약 이 두 가지만 잘하더라도 좋은 개발자가 될 것이라 자신합니다.
첫 번째, 순서도 작성입니다. 작업의 순서를 나타내는 다이어그램으로, 프로그램을 설계하고 문서화하는 데 사용한다. 예제로 주차장 출입관리 프로세스를 순서도로 표한하면 아래와 같습니다.
위와 같이 순서도를 작성하고 코딩을 한다면 설계 단계시 오류를 줄일 수 있습니다.
순서도는 여러 종류의 기호를 화살표로 연결하여 표현하는데, 순서도에 많이 사용하는 기호는 다음과 같습니다.
기호 | 명칭 | 설명 |
흐름선 | 작업의 순서와 기호의 연결 | |
터미널 | 순서도의 시작과 끝 | |
준비 | 프로그램이나 변수의 초기값 설정 | |
처리 | 각종 연산 및 명령어 처리 | |
판단 | 조건을 제시하고 이에 부합하는지를 판단 | |
반복 | 조건을 제시가하고 조건이 참인 동안 반복 수행할 연산이나 명령어 처리 | |
종속처리 | 다른 곳에서 미리 정의해둔 작업을 처리 | |
입출력 | 프로그램에서 데이터 값을 입력하거나 출력함 | |
서류 | 문서의 형태로 데이터 값을 출력함 | |
디스플레이 | 컴퓨터 모니터 등의 화면으로 중간 혹은 최종 결과값을 출력함 | |
자기디스크 | 하드디스크 등의 자기디스크로의 입출력 | |
수동 입력 | 사용자에 의한 데이터 값 입력 | |
주석 | 순서도의 이해를 돕기 위한 설명 | |
연결자(결합) | 같은 페이지에 있는 순서도에 연결 | |
페이지 연결자 | 다른 페이지에 있는 순서도에 연결 |
두 번째, 의사코드 작성입니다. 의사코드는 실제 코드와 닮았지만, 컴퓨터의 코드가 아닌 사람이 이해하기 위한 코드입니다. 의사코드는 작성 기준이나 문법이 없습니다. 프로그램 제작 단계뿐만 아니라, 향후 수정 및 보완 작업을 할 때 큰 도움을 줍니다. 실제 프로그램 작성 하기 전에 의사코드를 작성하면 작업 효율이 증가합니다.
예를 들어 홀수짝수를 구하는 함수를 의사코드로 작성해 보겠습니다.
홀수짝수구하는함수(변수)
{
if(변수를 2로 나눴을때 나머지가 0이면) 짝수;
else 홀수;
}
이건 저의 방식입니다. 위에서 말씀드렸듯 표준은 없습니다.
저는 위의 내용이 가장 중요하다고 생각합니다.
지금까지 읽어주셔서 감사합니다. 많은 도움이 되시길 바랍니다.
'ETC' 카테고리의 다른 글
[ETC] 디자인 패턴(Design Pattern) - MVC, MVP, MVVM (0) | 2023.03.30 |
---|---|
[ETC] ZEBRA 스캐너 CDC설정 (0) | 2023.03.23 |
[ETC] 티스토리 블로그 문단바꾸기, 줄바꾸기 (0) | 2023.03.13 |
[ETC] ASCII코드 (0) | 2023.03.06 |
[iOS]iOS 앱 배포 방식 (0) | 2023.02.02 |