Search

반응형

'개발자'에 해당되는 글 15건

  1. 2023.02.19 프로젝트 팀과 팀장의 중요성.
  2. 2022.05.08 프로그래밍은 어떻게 하나요? 1탄
반응형

자유로운 영혼으로 프로젝트를 활보하고 다녔던 시절이 있었습니다.

대부분 팀원으로 개발을 했지만 프로젝트에 투입되면 초면인 분들이 대부분이었지요.

팀을 구성해서 움직이는 프리랜서 팀도 본 적이 있지만 보통 혼자서 움직인답니다. 가끔 마음 맞은 개발자를 만나는 경우가 있고 시간이 맞으면 같이 프로젝트에 투입되기도 하지만 팀이라고 부르기엔 연결 고리가 약하다고 할 수 있답니다. 입사한 지 10년이 훌쩍 지났는데 이번주에 갑자기 "나는 외 팀이 없을까?"라는 생각이 문득 들더군요. 입사 초기에 프로젝트에 직원과 함께 투입되었고 이제는 팀이구나 생각했답니다. 같이 코딩도 하고 선배로 이런저런 이야기도 해주고 개발하면서 필요한 기법도 열정을 가지고 알려줬던 기억이 납니다. 하지만 프로젝트가 끝나고 남남처럼 헤어지게 되었답니다. 그 뒤로도 여러 프로젝트에 투입되었지만 혼자였습니다. 나 직원 맞아?

가면 낯설고 조금 친해지면 헤어지고 소속감도 없고 후배 양성은 시간 낭비라는 생각만 들더군요. 그냥 혼자 앉아서 코딩하고 공부하고 코딩하고 일정 잘 맞춰서 끝내면 직원들이 못한 부분 더 도와주고 철수하고 했답니다.

최근에 작은 프로젝트 PM을 맡게 되었답니다. 역시 팀은 없었습니다. 여기 저기 잉여 인력을 데려와 프로젝트와 맞지 않는 개발자도 포함되었습니다. 등급도 초급, 사원급에 해당 기술을 사용한 경력도 없는 팀원들이었습니다. 과연 이 팀원들과 짧은 시간에 프로젝트를 성공적으로 끝낼 수 있을까?라는 생각을 하게 되더군요.

기획부터 디자이너, 퍼블리셔 그리고 개발자 모두가 단 한번도 같이 프로젝트를 해 본 적이 없는데 기간은 짧고 해당 부분에 대한 경력도 없는 팀원들입니다. 더 당황스러운 건 이 프로젝트가 끝나면 또 뿔뿔이 각자의 길을 가게 되기에 팀이라고 부르기도 어색한 상황입니다. 그렇게 엉성한 구성으로 팀이 만들어지니 팀원들도 의욕이 없고 팀장의 지시도 잘 따르지 않게 됩니다. 직장은 평가에 의해 진급과 연봉이 결정되는데 이렇게 오합지졸 임시 팀의 팀장은 그런 권한이 없거든요.

그냥 프리랜서 하는 것이 더 속 편하다는 생각을 하게되더군요. 우선 맡은 프로젝트이니 어쩔 수 없이 진행은 하지만 과연 팀워크가 있을지... 프로젝트는 제대로 끝낼 수 있을지 살짝 염려가 되긴 하지만 어차피 짧은 기간에 팀도 엉터리로 구성해 줬기에 큰 부담은 없답니다. 팀장이기에 맡은 역할에 대해 최선을 다 하긴 하겠지만 어려움이 없진 않답니다. 결국 팀장이 팀원의 역할 일부를 맡아 개발도 진행해야 하지 않을까 싶네요.

제목에서 이야기 하듯 프로젝트를 진행함에 있어서는 팀과 팀장의 팀워크가 정말 중요합니다. 부족한 인력은 외부에서 충원할 수 있지만 프로젝트 백본 역할은 팀워크가 중요하다고 생각합니다. 10년 넘게 정규직으로 회사를 다니는데 팀이 없다는 생각을 하니 왜 직원들이 자주 나가고 일 잘하는 개발자들이 떠나는지 알겠더군요.

프로그래머(개발자)로 계속 공부하면서 기술력도 향상하고 후배도 양성하면서 프로젝트에 투입되면 최적의 코딩을 하는 것이 내 직업이라 믿고 있습니다. 전에도 이야기 했지만 공부하지 않는 개발자는 그저 엉성한 코드만 만들고 오류만 만들어 프로젝트 진행에 방해가 되기 일쑤거든요.

언젠가 임원분이 이런 이야기를 하더군요. 진급도 잘 되고 연봉도 보너스도 더 받고 싶다면 정치를 하라고...

직장인과 직업인이 있습니다. 직장인은 조직에 소속되고 나이가 들어 그 직장을 떠나면 더 이상 일을 하기 힘든 상황이 발생합니다. 당연히 직장에서 살아남고 승진과 연봉 인상을 기대하게 되며 그러기 위해서는 윗사람에게 잘 보이는 정치를 해야겠지요. 어떤 책에서 읽은 내용인데요. 직장인이 나이가 들고 연봉이 오르지만 과연 그 직장인이 직장을 떠나도 그 연봉만큼의 몸값을 받을 수 있을까요? 결국 직장이 있는 동안은 연차에 의해 진급과 연봉이 인상된 거라는 의미입니다. 하지만 직업인은 다릅니다. 여러분의 직업은 무엇인가요?

저는 프로그래머이며 블로거이며 작가 지망생이며 투자자입니다. 지금 회사를 떠나도 프로그래머로 일을 할 수 있습니다. 그냥 활동 무대만 바뀌는거지요. 가수도 직업이고 의사도 직업입니다. 여기서 깊이 생각할 부분이 있습니다. 현재 개발자라 자칭하는 분들이 과연 회사를 나와서, 독립해서, 직업인 개발자로 돈을 벌 수 있냐는 겁니다. 항상 공부하고 연구하며 새로운 기술을 배우고 자신의 능력을 최대치로 키우고 유지하는 프로그래머는 직업인입니다. 

팀도 없고 항상 새로운 환경과 사람들을 만나 매번 알아가는 시간도 필요하고 개발 성향이 맞지도 않아 불편하고 끝나면 뿔뿔이 흩어지는 회사 구조에서 과연 성장하는 길이 있을까요?

오늘도 새로운 기술을 배우고자 열심히 공부하다 문득 팀에 관한 생각이 들어 포스팅 해봤습니다. 정말 한 번은 팀을 구성해서 즐겁게 프로젝트를 해보고 싶은 직업인이었습니다.

다들 행복한 인생을 위해 ...

반응형
반응형

안녕하세요. 신기한 연구소입니다.

장거리 출퇴근을 하면서 많은 생각을 하는데요.

프로그래머가 되고 싶은 분들이 어떻게 하면 쉽게 이해하고 배울 수 있을까?

더 쉽게 설명해 주려면 어떤 방식이 좋을까?

이런 생각을 많이 한답니다.

 

변수를 어떻게 설명할까?

많은 책과 사이트를 찾아 보고 읽어보면 대부분 비슷하게 구성되어 있고

설명을 하고 있더군요.

개발자인 경우는 그 설명을 읽으면 이해도 되고 업무에 활용도 할 수 있지만

이제 개발자의 꿈을 갖고 있는 사람들이나

새내기 프로그래머들은 사실 그런 설명도 이해하기 힘들어하는 경우도 있더군요.

그래서 내가 아는 수준으로 설명을 하는 경우

초보 개발자 분들은 어려워 할 수도 있겠다는 생각을 하게 되었답니다.

"도대체 그래서 이걸 어떻게 어느 시점에 사용을 하라는 거지?"

"보면 이해 되는데 막상 개발할 때는 어떻게 활용하는 것일까?"

이런 의문들을 갖게 되는 것은 당연한 것이고

이런 의문들을 쉽고 이해할 수 있게 설명해 주는 것이 선배 개발자의 배려가 아닐까 싶네요.

 

여러분이 키오스크 프로젝트에 투입 되었습니다.

주문 결제에 대한 프로그래밍을 한다고 가정하고 중간 과정에 대해 설명을 해볼까 합니다.

메뉴가 화면에 펼쳐지고 이제 구매자는 원하는 메뉴를 터치하게 됩니다.

그러면 그 메뉴는 구매 목록 또는 장바구니에 담깁니다.

이때 메뉴판에서 터치해서 선택하는 순간 해당 메뉴의 유일한 구분 값인 메뉴 ID를 어딘가 담아서

장바구니 쪽에 전달해줘야 합니다.

값은 화면에 뿌려질 때 이미 가지고 있고 선택한 메뉴에 대해서만 장바구니로 이동해야 하는데

이때 값을 담아서 이동할 때 사용하는 것을 보통 변수라고 합니다.

변수?

변하는 수?

 영어로 Variables라고 합니다.

메뉴를 선택할 때 이벤트가 발생하고

해당 이벤트는 선택된 메뉴 ID를 건네줍니다.

그럼 변수에 담아 가져 가면 되는데

변수는 이름을 지정해야 합니다.

이유는 프로그램을 하다 보면 많은 변수를 사용하게 되고

그 해당 변수들은 각자의 독립적인 중복되지 않는 이름을 가져야 합니다.

중복된 변수명이 가능하다면 어떤 변수의 값을 사용할지 혼란스럽게 될 테니깐요.

우리는 메뉴 ID이기 때문에 이름을 menuId라고 만들어보겠습니다.

이제 menuId에 선택한 메뉴 ID를 담아두면 됩니다.

선택한 메뉴는 짜장면이고 메뉴 ID는 가정해서 "M00010"이라고 해볼게요.

menuId = "M00010";

보통 이런 구조로 변수에 값이 담기게 됩니다.

이것을 할당이라고 부릅니다.

할당은 "=" 기호를 사용하는데 수학에서는 "는" 또는 equal(같다)라는 개념으로 사용하는데

이 부분을 혼동해서는 안됩니다.

프로그래밍에서는 같다는 "=="로 2개를 사용하고 "="는 값을 넣어주는 할당의 개념으로 사용하거든요.

이제 menuId를 장바구니 목록으로 옮겨야 합니다.

목록이니 여러 개의 값을 담을 수 있는 배열이나 리스트를 사용하겠지요?

첫 주문 메뉴라면 해당 장바구니 첫 번째 공간에 선택된 menuId 값이 할당되게 하면 되겠네요.

배열이라고 했을 경우 basket[0] = menuId; 로 할당하면 되겠네요.

basket[0]에는 menuId라는 글자가 할당되는 것이 아니고 menuId에 할당된 값인 "M00010"이 할당됩니다.

menuId에 문자열을 나타내는 ""로 감싸져 있지 않기 때문에 변수로 인식됩니다. "menuId"라고 감싸서 할당했다면

basket[0]에는 menuId의 값인 "M00010"이 아닌 "menuId" 이 글자 자체가 값으로 인식되어 할당되게 됩니다.

basket[0] = menuId;로 변수 할당을 했기 때문에 basket[0]값을 출력한다면 "M00010"이 출력될 것입니다.

회원 가입이 필요합니다.

우리는 보통 아이디, 성명, 비밀번호, 연락처 등의 정보를 입력한 뒤 가입을 시도하게 됩니다.

이때 아이디, 성명 등의 값을 화면의 Input 박스에 타이핑해서 넣고

가입하기를 누르면 해당 입력값들이 전송되고 가입신청이 완료됨을 알 수 있습니다.

이때도 변수가 필요한데요.

바로 아이디, 성명, 비밀번호 등의 화면에서 사용자가 입력한 값을 가지고

서버 쪽에 전송해서 입력한 데이터를 저장을 하게 되는데요.

이 값들을 변수를 만들고(이름 짓기, 초기화 등) 입력한 값을 할당해서

서버까지 값이 이동할 수 있게 해 준답니다.

 

다음 편으로...

반응형