개발직군 업무관련 질문이요

개발직군 업무관련 질문이요

작성일 2021.02.08댓글 4건
    게시물 수정 , 삭제는 로그인 필요

지금 이쪽으로 취업목표로 공부중인데요
제가 완전 처음부터 시작하는거라 현업에서 이게 어떻게 돌아가는지 모르는채로
그냥 공부중이라 조금 막막한데요

혹시 현업에서 어떤 프로젝트가 돌아가는지 그래서
나같은 생초보신입이 들어오면 어느정도의 지식을 갖고 일을 할 수 있어야할지
좀 알려주실 수 있나요

진짜 회사 프로젝트 예시라도 하나 보면은, 아 내가 얼만큼 어떤 지식을 알아야겠구나 할텐데..



profile_image 익명 작성일 -

안녕하세요. 저는 웹 서비스를 주로 개발하는 회사에서 서버 개발을 하는 사람입니다.

프로그래밍 언어는 개발하는 수단일 뿐이고 분야마다 필요한 기술이 다릅니다. 보통 게임이든 웹이든, 사용자에게 보여줄 화면을 구성하는 업무, 서버 개발과 운영을 하는 업무로 나뉩니다.

사용자에게 보여줄 화면을 구성하는 업무는 프론트엔드라고 부릅니다. 프론트엔드는 사용자와 밀접합니다. 게임의 경우 게임을 개발하는 엔진을 다를 줄 알아야하고, 3D 게임의 경우 어느정도의 선형대수학 지식과 컴퓨터 그래픽스의 지식이 필요합니다. 웹 서비스의 경우 브라우저 엔진을 잘 이해하고 있어야하며, 화면에 동적으로 시각적인 요소를 나타낼 때 사용하는 javascript 언어와 react와 같은 자바스크립트 기반 인터페이스 라이브러리를 잘 알고 있어야합니다.

서버 개발 업무는 백엔드라고 부릅니다. 백엔드는 사용자 요청을 처리할 서버의 개발, 데이터베이스 운영 및 사용을 주로합니다. 화면에 보여지는 것은 거의 없고, 사용자에게 보여줄 데이터를 내려주는 역할, 데이터를 저장하는 역할 등을 합니다. 게임, 웹서비스 등을 사용할 때 로그인을 하면 인증처리를 해야하는데, 이것도 서버의 몫입니다. 데이터를 단순히 내보내고 저장하는 역할만 하지않고 나아가서 데이터 집계와 서로 다른 플랫폼 간 데이터 송신 또는 수신 등의 데이터 엔지니어링 성격의 업무도 백엔드 개발자의 몫입니다.

프론트엔드, 백엔드 개발자 모두 컴퓨터 과학 지식이 기본이 돼야 뛰어난 개발자가 될 수 있습니다. 대표적인 컴퓨터 과학 지식은 운영체제, 네트워크, 데이터베이스입니다.

운영체제를 공부하면 CPU, 메모리, 저장장치 등의 컴퓨터 자원을 운영체제가 어떻게 관리하는지 알 수 있습니다. 프로그래밍을 하다보면 성능을 최대한 쓰기 위해서 또는 n개의 작업이 반드시 동시에 작동하게 만들기 위해서 등, 필연적으로 병렬로 작동하는 프로그램을 만들게 되는데, 이 때 운영체제가 CPU 자원을 관리하는 방식을 모른다면 제대로 개발할 수 없고 오류가 발생하면 원인을 찾을 수 없습니다. 메모리 등의 자원의 관리 방식도 마찬가지입니다.

네트워크를 공부하면 서로 다른 컴퓨터에서 데이터를 주고받는 방식을 이해할 수 있습니다. IP주소, port가 무엇을 의미하는지, 데이터를 안정적으로 송수신 하기 위해 존재하는 프로토콜의 이해, 데이터를 효율적으로 송수신하기 위해 무슨 동작을 하는지 등을 이해할 수 있습니다. 단순히 데이터를 주고받기 위해선 소켓이라는 것을 열어 데이터를 보내고 받고만 하면 되는데, 앞서 말한 지식이 없다면 복잡하고 고성능이 필요한 프로그램이나 서버를 작성할 수 없고 네트워크 오류 발생 시 대처하기가 어렵습니다.

데이터베이스를 공부하면 데이터를 어떻게 안전하게 영구보관하고 효율적으로 조회할 수 있는지 알 수 있습니다. 자료를 저장하는 방식과 이 방식을 이용해 데이터를 빠르게 조회할 수 있는 방법을 알 수 있고, 데이터를 일관성있게 저장하려면 어떻게 데이터베이스 구조를 짜야하는지 등을 알 수 있습니다.

또한 컴퓨터 과학적 지식뿐만 아니라 자료구조, 알고리즘, 디자인 패턴, 클린코드 등의 소프트웨어 공학적 지식도 필요한데요, 이것들을 잘 안다면 원하는 기능을 효과적이고 유지보수를 잘할 수 있도록 만들 수 있습니다.

필요한 지식들을 나열하니 좀 장황해보이네요. 추천 드리는건 어느 언어라도 일단 하나 잘 공부하는 겁니다. 가능하면 C++같은 빌드가 필요한 언어를 추천드립니다. 왜냐면 빌드 과정을 공부하며 어떻게 프로그래밍 언어가 이진 파일로 변환이 되는지 어느정도 이해할 수 있기 때문입니다. 만약 시간이 부족하고 실무에 당장 필요하다면 Java나 C#을 추천드립니다. 일단 프로그래밍 언어 하나를 어느정도 잘 공부해두시면 다른 언어를 봐도 금방 적응할 수 있을겁니다.

프로그래밍 언어를 한가지 습득하고 나면 자료구조는 꼭 학습하시길 바랍니다. 이것도 시간이 부족하다면 언어 차원에서 제공해주는 자료구조를 사용해보시고 List, Queue, Stack, HashTable, Tree 정도는 개념을 꼭 이해하길 바랍니다. 그리고 알고리즘은 적어도 정렬은 꼭 학습하시길 바랍니다.

그 후 컴퓨터 과학 지식을 공부해야하는데, 운영체제, 네트워크, 데이터베이스는 이론적인 성격이 강해서 혼자 학습하기 힘들 수 있습니다. 자세히 설명된 서적을 읽는게 가장 도움이 되지만 작성하신 질문글을 보니 컴퓨터 공학과를 다니지 않는 상태에서 취직을 목표로 공부하는 거라 시간도 모자르고 힘들거라고 예상되네요. 만약 공부하실 시간이 충분치 않다면 온라인 강의라도 꼭 들으시길 추천드립니다. "운영체제 온라인강의"라고 검색해보니 이화여대에서 무료로 제공하는 강의도 있네요. 강의의 질이나 이해하기 좋은 정도는 알 수 없으나 대학교의 교수님들은 그 분야의 전문가니 이런 강의를 들으면 좋을 것 같네요. 네트워크나 데이터베이스도 마찬가지로 검색하면 좋은 강의와 자료가 많습니다.

이 정도를 공부하시면 신입으로서 취업에 필요한 기본중의 기본은 된 셈입니다. 모자른 부분은 책이나 강의를 통해 보충하면 됩니다.

대부분의 IT 기업들은 개발자 채용시 알고리즘 시험을 보는데요, 프로그래머스, 백준같은 사이트에 커리큘럼과 문제가 워낙 잘돼있으니 이후부턴 이 문제들을 풀고 학습하며 시험에 대비하면 됩니다.

여력이 되신다면 여러 대학교의 연합 동아리, 혹은 인터넷 상에서 다른 동아리 같은 곳에 참여해 프로젝트 개발을 해보길 바랍니다. 포트폴리오에도 도움이 되고 실력 향상에도 많은 도움이 됩니다.

취직을 하신다면 당연히 유망한 IT 대기업이 좋겠지만, 보통 이런 기업은 위에 나열한 지식은 물론이고 이미 그 기업에서 일할 때 필요한 지식들을 요구합니다. 예를 들어 , 카카오 등 웹 서비스 기업은 HTTP, 웹 아키텍처에 대한 이해를 요구하고 개인적으로라도 웹 서비스를 만들어 봤는지 등도 요구합니다. 엔씨, 펄어비스 등 대형 게임회사의 경우 클라이언트 개발은 유니티 또는 언리얼 엔진을 사용해보고 어느정도 알고 있는지, 컴퓨터 그래픽스 지식은 어느정도 있는지 등을 요구합니다.

여력이 되신다면 공부해서 유망한 기업으로 가는게 좋습니다. 버겁다면 유망한 기업의 자회사부터 시작해보면 좋습니다. 자회사여도 시스템이 본사와 비슷한 경우가 많기 때문입니다. 생각보다 사람들이 잘 모르는 자회사가 많습니다. 최소한 인지도 좀 있거나 처우가 괜찮은 유니콘 스타트업을 가길 추천드립니다. 중소기업이나 기타 스타트업은 보통 항상 인력에 허덕이며 제대로된 시스템도 기대하기 어렵습니다. 신입때 간다면 이런일 저런일 하다가 뭐하나 깊게 해본게 없는 잡캐가 되어 이직이 어렵게 될 수 있습니다.

도움이 됐으면 좋겠네요.

profile_image 익명 작성일 -

게임프로그래밍 게임개발학원이구요

취업전문학원입니다

강사님들이 현업에 계셨던 분들이라 실무중심으로 수업을하고

실제로 실무에서 일했던 경험과 노하우도 같이 들으실수있어 더욱 도움이 되실것같네요

생초보시라면 독학으로 취업준비보다

전문학원에서 전문적으로 기초부터 배우시는게 좋을듯합니다.

궁굼하신점 문의남기시고 상담받아보세요 프로그래밍은 정말 독학힘듭니다.

http://sbsgamegwangju.com/renewal2016/customer/career.asp?subM=0704

profile_image 익명 작성일 -

개발자로 취업을 하시고 싶으신건가요?

제가 10여년간 개발자로 일해본 경험을 토대로 말씀드리고 싶은건 언어부터 설정을 잘하세요

java든 asp든 c든 하나를 딱 정하고 그 길을 파야합니다.

그리고 혼자서 독학하시는 것은 취업하는데 있어서 비추이고요...

국비로 할 수 있는 학원이 있습니다. 그런곳에 들어가면 6개월 과정인데 6개월동안 일부 회사 프로젝트를 진행하게 됩니다.

거기서 부터 시작하시면 어떻게 해야하는지 방향이 잡힐껍니다.

profile_image 익명 작성일 -

안드로이드 6년차 개발자 입니다.

개발자 직군은 굉장히 다양 합니다.

안드로이드 앱 개발 관련 직군이 궁금하시면, 밑에 책을 읽어주세요.

안드로이드 말고 다른 개발 직군에 대해서 궁금하시다면, 아래 책을 읽어 주세요.

도움이 되셨기를 바랍니다.

지식IN답변에는 쿠팡 파트너스 활동에 따른 수수료를 제공 받을 수 있습니다.

개발직군 업무관련 질문이요

... 서버 개발 업무는 백엔드라고 부릅니다. 백엔드는 사용자 요청을 처리할 서버의 개발... 자세히 설명된 서적을 읽는게 가장 도움이 되지만 작성하신 질문글을 보니 컴퓨터...

개발직군 게임 개발 소스코드 문서...

... 개발직군과의 업무 교류에서 소스코드가 공유되는 정도의 상황이 있다면 지금... 프로그래밍 공부 및 개발자 취업에 대해 더 궁금한 점 있으시면 일대일 질문, 쪽지, 댓글...

개발개발 업무? 전산 업무?

... 업무 특성상 업무 패턴이 일정하고 워라벨 측면에서 일정 부분 메리트가 있습니다. 컴퓨터 관련 학과 출신을 주로 선발하긴 하지만 개발과는 다소 거리가 있는 직군으로...

엔터 신인개발관련 질문이요!

... 엔터관련으로 하이브나 소속사의 신인개발팀에... 모르겠어서 질문 남겨요. 전혀 관련 없는 학과지만 공부 잘... 경험과 관련 업무에 대한 이해도를 높이는 것이 가장...

개발 게임개발 질문

... 네 안녕하세요 질문자님! 게임 개발에는 정말 다양한 직군들이 있습니다. 우리가 하는... 게임 개발관련해서 더 궁금한 점이 있으시면 담당 멘톰쌤이나 게임 학원에서 직접...

연구 개발 직군 회사원의 특허

... 연구개발직군의 특허는 회사에 귀속되는걸로 알고있습니다. 그런데 내고자 하는 특허가 업무 분야와... 네 업무관련이 없다면 측허를 출원할 수 있으며...