은하수
1k
2017-02-01 00:11:44 작성 2018-04-14 02:31:46 수정됨
68
57732

[2018.4][2차수정판] 웹개발자 기준 비전공자 신입으로서 전공자한테 안 밀리고 살아남는 법.tip


(2018년 4월 14일 2차 추가 수정)

약 1년반 전, 대단치않은 신입이 치기어린 혈기에 남을 가르치듯 적었지만,

돌이켜보면 참 많이 부족했다는 느낌이 들어서 다시 한 번 내용을 첨언합니다.

허나 아직 만2년도 안된 허접이니 걸러들으셨으면 합니다.

2차 추가 내용은 초록색 배경으로 적겠습니다.


--------------------------------------------------------------------------------------------------------------------------------

(2017년 8월 30일 추가 수정)

신입의 보잘 것 없는 글이 오래도록 베스트에 올라가 있으니 다소의 책임감을 느끼는 바,

입사 1년째을 기념하여 글에 첨언을 하고자합니다.

원글은 그대로 두고 그 동안 현업에서 배우면서 느낀 제 의견을 빨간색으로 추가해 넣겠습니다.

그래봤자 고작 입사 2년차에 접어든 하수의 경험일 뿐이니 경력자분들은 귀엽게 봐주셨으면 합니다.

--------------------------------------------------------------------------------------------------------------------------------



전 순수인문을 전공했고 소위 말하는 단기 학원 출신입니다.

학원들어갈 때까지 프로그래밍에 대해 아무 것도 몰랐습니다.

심지어 아직 컴퓨터 포멧도 할 줄 모릅니다

-> 아직도 할 줄 모릅니다.

-> 이제 할 줄 압니다.

하지만 현재 외국의 대기업에서 개발팀 신입으로 근무중입니다.

입사가 결정되기까지 세 번의 면접과 두 번의 코딩 테스트가 있었습니다.



아직 배울 게 태산이고, 정신없이 일을 따라가고 있는 초짜입니다만,

이제 막 프로그래머로서의 진로를 고민하는 비전공자 분들에게 이 짧은 글이 도움되었으면 합니다.

제가 취업을 준비하면서 "무엇을 공부했는가"에 대해 말하고 싶습니다.

단기 학원에서 수업을 들으면서 느낀 건 학원에서 가르치는 지식은 굉장히 얉다는 점이었습니다. 하지만 제가 면접을 본 소위 좋은 회사들은 보다 더 깊은 지식을 요구했습니다. 하지만 그것은 학원에서 가르치지 않았기에 혼자 공부해야 했습니다. 

경력자분들에선 가소로운 내용일 수 있으니 그냥 스윽 넘어가주시면 감사하겠습니다




(1) 네트워크(웹서버포함)

네트워크는 매우 중요합니다. 신입한테는 운영체제와 컴퓨터 사이언스에 대한 지식보다 중요하다고 전 개인적으로 생각합니다. 데이터가 어떻게 라우터를 통해 넘어다니고 하는 것까지는 모르더라도, 웹브라우저(클라이언트)와 웹서버(서버) 사이에서 일어나는 흐름들, http 프로토콜에 따라 데이터가 헤더와 바디에 담겨서 넘나드는 흐름을 정확히 이해하고 있는가 아닌가는, 여러분의 기초적인 코딩 응용력을 결정짓는 매우매우 중요한 요소라고 생각합니다. 

보통 여기선 웹 서버 하나 정해놓고 공부를 하는 게 도움이 됩니다. apache 또는 nginx 등을 추천합니다. 관련 서적은 넘쳐납니다. 영어가 되시면 해당 사이트의 documents, cookbook 등을 참고하면서 튜토리얼부터 밟는 게 가장 좋다고 봅니다. 그렇게 웹서버를 처음부터 공부하면서 모르는 단어 나올 때마다 인터넷 뒤지면서 의미 파악해가면서 배우면 천천히 전체적인 웹 인프라의 그림이 그려지게 됩니다. 

핵심은 자신이 직접 그 개념을 활용해봐야 한다는 것입니다. 완전히 몸에 익힐 순 없더라도 최소한 어떤 느낌인지 직접 써봐야지 비로소 의미가 있지 수박 겉핥기 식으로 개념만 습득해선 별로 의미가 없다는 점입니다.

예로 들어 단순히 IP가 뭐고, 도메인이 뭐고 의미를 이해하고 그치는 것이 아니라 웹서버 Apache로 name based virtual host랑 ip based virtual host 돌려보면서 그 차이를 이해해야 비로소 "이해한 것"이라고 전 생각합니다. 이게코드 보면 이해해도 막상 해보면 또 어떤 이유로 인해 안 될 때가 많습니다. 그래서 몸소 겪으면서 이해를 해야합니다. 그리고 비로소 그렇게까지 해야만 기술 면접에서 자신있게 말할 수 있습니다. 나 해봤다고, 또는 나 할 수 있다고.

-> 이 부분에 대해서는 지금도 의견이 변함이 없습니다. 기업이 크거나 서비스가 클수록 거대하고 복잡한 인프라로 구성되어 있는데, 처음 입사를 하면 눈 앞의 코드 이해에 급급하여 이러한 인프라를 경시하기 쉽습니다. 하지만 언젠가 그 인프라에 대한 무지가 발목을 잡는 날이 올 확률이 높습니다. 인프라는 끊임 없이 변하고 서비스는 그 인프라에 맞춰 또 변해가야되기 때문이죠. 인프라를 이해하는 기본인 네트워크, 그 네트워크가 신입에겐 가장 중요한 지식 중 하나라는 생각은 아직도 그대로입니다.

 공부를 하면서 느끼는 것은 책을 보고 따라친 것은 오래 기억에 남지 않는다는 점이었습니다. 심지어 따라치지도 않고 책만 봤다면 더 빠르게 까먹더군요. 몸이 기억하려면 어떤 문제 상황을 설정하고, 또는 어떤 구체적인 구현 목표를 설정하고, 그것에 트라이하면서 삽질을 거듭하고 그 삽질 속에서 실력이 다져진다는 느낌을 강하게 받았습니다. 게시판 글을 보다보면 책 추천을 바라는 분들이 많은데, 잘 쓴 양서를 읽는 것도 중요하지만, 그 양서를 자신의 것으로 만들려면 "삽질"이라는 필연적인 절차를 거쳐야되지 않나 조심스럽게 생각해봅니다. 

-> 의견이 좀 있는데 2번에 같이 적겠습니다.


(2) 운영체제(컴퓨터사이언스 포함, 주로 리눅스 중심으로)

 컴퓨터 사이언스와 운영체제, 결국 이 부분을 얼마나 이해하고 있냐에 따라 비전공자가 전공자를 따라갈 수 있는가 아닌가가 판가름 나는 부분인 것 같기도 합니다. 일하는 환경에 따라 리눅스를 아예 쓰지 않을 수도 있지만, 그럼에도 불구하고 운영체제를 이해하고 있는지 아닌지는 개발자의 역량을 크게 좌우하는 부분인 것 같습니다. 코드를 치면서 스레드나 프로세스, 동기 비동기 등을 따지고 생각할 줄 아는 사람과, 그렇지 못한 사람은 결국 코드의 질도 다를 수밖에 없다고 생각합니다. 대표적으로 자바스크립트가 싱글스레드인 걸 이해한 사람과 이해하지 못한 사람은 큰 차이가 있겠죠. 나아가 리눅스 중심 운영체제를 공부하다보면 파일시스템, vim, 각종 명령어 등을 익히면서 점점 마우스를 쓰지 않게 됩니다. 그리고 마우스를 쓰면 오히려 속도가 느려지는 경지가 이르게 되면, 개발자로서의 능률이 더욱 올라갑니다.

 전 컴퓨터 사이언스 책 한 권(공룡책이라는 게 유명하다는데 그건 아직 못봤습니다.)과 "이것이 리눅스다!" 라는 centos 리눅스 한 권가지고 집에서 틈날 때마다 공부를 했습니다. vmware를 이용해서 충분히 여러분의 집에서도 리눅스 개발 환경을 구축할 수 있습니다. vmware가 짱입니다.

-> 컴퓨터 사이언스를 리눅스를 통해서 공부하면 될 것 같습니다. 우분투도 좋고 centos도 좋습니다. 배포판은 둘 중 하나라면 뭐든 상관없을 것 같군요. 리눅스와 같은 매개체가 없이 컴퓨터 사이언스를 바닥부터 공부한다는 것은 진도도 잘 안 나갈뿐더러 어려운 내용이 많아서 머리가 터지기 마련입니다. 뭐 그것도 재밌게 하시는 분들이 있지만 비전공자인 제겐 벽이 꽤 높더군요. 하지만 리눅스라는 좋은 운영체제를 하나 잡고, 파면서 그때그때 모르는 것을 하나하나 찾아보며 공부를 하니까 효율이 좋았습니다. 예로 들면 리눅스를 공부하다보면 프로세스란 것에 대해서도 알게되고, 스케줄링에 대한 것도 알게 되고, 결국 그렇게 자기도 모르는 사이에 컴퓨터 사이언스 지식들을 하나하나 습득하게 됩니다. 

리눅스는 책을 보며 공부해도 되고, 전 입사 후 첫째달에 복습도 할겸, https://www.udemy.com/courses/ 이 사이트에서 리눅스 강의를 구입해서 들었는데 매우 양질의 수업이었었습니다. 강의 제목은 "Learn Linux in 5 Days and Level Up Your Career" 입니다. 영어 자막있습니다.

+리눅스에 대해서 어느 정도 자신이 붙었다 싶으면 Docker에 대한 공부를 적극 권해드립니다. vm ware같은 가상머신으론 누릴 수 없었던 신세계를 맛보게 되실 겁니다. 그리고 개발자로서의 역량&시야도 대폭 좋아지실 거구요. 도커에 대한 자세한 설명은 여기서 하지 않겠습니다.(저도 남에게 도커 가르칠 레벨은 아니라서..)

-> 운영체제 공부라면 LPIC시험 추천드립니다. 덤프로 따지 마시고 제대로 공부해서 레벨1만 따도 많은 도움 되실겁니다. 바로 리눅스 자신감 붙을 겁니다. 자신있게 말씀드릴 수 있습니다. 덤프말고 제대로 공부해서 따신다면요.

그리고 결국 요즘 느끼는 건 웹 어플리케이션에게 운영체제와 네트워크는 일종의 한 몸과 같더군요. 인프라라도 흔히들 부르는데, 운영체제와 네트워크는 마치 배다른 쌍둥이와 같다는 느낌이 많이 듭니다. 하나만 신경써서는 반쪼가리가 되는 느낌이랄까. 예를 들어 어떤 문제 상황이 터졌을 때 네트워크만 잘 알아도 의미가 없고, 운영체제만 잘 알아도 의미가 없더군요. 둘다 잘 알아야 하더군요. 코드레벨의 버그는 유닛테스트로 잡아낼 수 있겠지만, 원인 모를 성능 저하, 또는 정체 모를 에러 로그들의 원인을 찾아가다보면, 결국 네트워크와 운영체제 레벨에서 그 원인을 찾아내는 경우가 적지 않았습니다. 그리고 네트워크나 운영체제 레벨에서 터진 문제는 보통 심각한 트러블로 연결되는 확률이 적지 않습니다. 특히 성능 문제를 신경쓸 정도로 유저가 있고, 시스템이 복잡할수록 더더욱 인프라(네트워크, 운영체제)에 대한 지식이 필요해지는 것 같습니다. 그 말인 즉슨 돈 잘버는 회사일수록 인프라에 대한 지식이 더더욱 중요해진다는 말이기도 한 것 같습니다.(이 문장은 걸러들으시길)


(3) 알고리즘 및 자료구조

프레임워크가 다 만들어주는 mvc 구조에 따라 코딩하는 것은 쉽습니다. 하지만 보다 효율적인 코드를 고민하고 보다 논리적으로 코드를 짜려는 사고력을 기르기 위해서라도 알고리즘 및 자료구조 지식은 필요하다고 봅니다. 신입 기준에서 다익스트라 알고리즘같은 건 당장 몰라도 된다고 봅니다.(나중에 필요할 때 공부하면 될테니까요..) 제가 딱 몇 개 추천드릴테니 이것만 하셔도 신입으로선 충분하다고 봅니다. 제대로 이해하고, 간단한 코드를 구현할 수 있게 되더라도 코드를 보는 시야가 많이 넓어질 것입니다. 코딩 테스트에도 도움이 되구요.

1, 스택

2, 큐

3, 트리

4, 이진검색트리

5, 해쉬검색(체인법, 오픈어드레스법)

6, 퀵 정렬

7, 머지 정렬

8, 기수 정렬

9, 링크드 리스트 (쌍방향까지) 

언어는 c나 파이썬으로 공부하시면 될 것 같고 열혈 자료구조 같은 책이 시중에선 가장 핫한 것으로 알고 있습니다.

-> 알고리즘과 자료구조의 지식이 대부분의 신입에겐 입사 후 당장 도움이 되지는 않는 것 같습니다. 아마 성능을 바이트 단위로 튜닝해야 할만큼 트래픽이 많은 서비스의 경우와 같은 케이스나, 다익스트라 알고리즘같이 특정한 목적을 위해 사용할 때가 아니라면 굳이? 라는 생각이 드는 것도 사실입니다. 오히려 이러한 알고리즘보단 빅오계산법이 더 가치가 있다는 생각이 들고요. 신입에게 필요한 알고리즘 자료구조 지식이란 딱 면접보고 코딩 테스트 볼 레벨정도면 되지 않을까라고 조심스레 생각해봅니다. (그래도 1~9번 정도면 프로그래머인 이상 기초지식 느낌으로 알아줘야되지 않나란 생각도 듭니다.)

-> 입사 후 무슨 일을 하는가?에 달렸겠습니다만, 최소한 신입~주니어 레벨에선 알고리즘보다 디자인패턴이 더 중요한 것 같습니다. 디자인패턴에 대한 의견은 아래에 별도 적습니다. 개인적 의견입니다만 신입 기준에서 봤을 땐 언터쳐블 레벨의 프로그래머가 아닌 이상, 알고리즘은 약간 코딩테스트, 면접용이란 느낌이 드는 게 솔직한 사실입니다. 


(4) 보안

단기 학원 같은 데서 프로젝트할 때는 보안같은 거 신경 안쓰죠. 하지만 회사에선 가장 중요한 부분이 바로 보안입니다. 하지만 신입은 보통 보안에 대해 아무 것도 모릅니다. 하지만 웹에서 자주 발생하는 해킹은 일정한 패턴이 있으므로 몇 가지 방법에 대한 대비만 잘 알아놓더라도, 기술면접 등에서 아주 크게 어필할 수 있습니다.(어필하는 거로는 이제 어필이 가장 잘 되었던 걸로 기억합니다.) 제가 딱 몇 가지 추천해드릴테니 이 부분에 대해서만 잘 알아보고, 방어법까지 공부해두시는 걸 권합니다. 3번까진 필수, 4~6번은 추천 ..ㅎㅎ?

1,XSS

2, CSRF

3, SQL injection

4, Open redirect

5, command injection

6, Directory Traversal


-> 자신이 보안 전문가가 되지 않을 거라면, 신입의 입장에선 위에서 1,2,3 번만 제대로 알고 대응할 수 있으면 4,5,6까진 몰라도 된다는 생각이 듭니다. (어디까지나 평균 신입 기준이지 네이버나 카카오급을 노리시는 분들이라면 또 얘기가 다르겠지만요 ㅎㅎ)

-> 실제 업무에 있어서 보안은 생명입니다. 제가 위에 적은 기술적인 보안도 중요합니다만.(1,2,3 번이 특히 중요하다는 점엔 변함이 없습니다만) 실제 회사 생활을 함에 있어서는 단순한 문서보안, 사내 감시툴 등 각종 인트라넷에서 사용하는 패스워드 관리 보안, 비품 보안(사내 중요 정보가 담겨 있는 물건들의 반입/유출 등에 대한 보안 등을 일컫습니다.) 등이 더 피부로 와닿는 부분입니다. 고로 위의 기술들은 알면 좋지만 입사하고 배워도 늦지 않다라는 생각은 듭니다만, 좋은 회사 트라이하시려면 익혀두시는 게 좋겠죠. 

 그리고 위에 나열한 해킹 방법과 그에 관련된 방책을 익히는 것도 중요하지만, 결국 사람이 하는 일이다보니 보안을 사람이 체크하다보면 빠뜨린 게 있을 수 있습니다. 그러므로 Appscan이나 Burp와 같은 세큐리티 테스트 툴을 이용해서, 새로 만든 기능 등이 있으면 해당 툴로 싹 세큐리티 감정을 해주는 절차를 거치는 게 좋습니다.

 그리고 보안과 직접적 관련이 있는 사안은 아니지만, 서비스가 커지다보면 결국 "부하" 문제가 현실로 떠오릅니다. 그럼 그때부터 스트레스 테스트, 로드 테스트 등을 진행하게 되는데, 이 경우 서버가 감당할 수 있는 이상의 부하가 몰려올 시 어떻게 되는가 등에 대한 검증을 꼭 거치는 게 좋습니다. 이 역시 간접적으로 보안에 관련되어 있다고 생각합니다.


(5) 버전 관리 툴 (git)

 여러분이 프리랜서가 아니라면 다른 동료들과 같이 일을하게 될 것이고, 그렇다는 것은 버전관리 툴을 쓸 확률이 매우 높다는 것을 의미합니다. 버전관리 툴이 무엇인지에 대한 설명은 여기서 생략합니다. 우선순위를 따진다면 (1), (2) 번만 못하나, 이것을 할 줄 알면 또 면접에서 적잖게 어필이 되는 것 같았습니다. 저는 리눅스를 공부하면서 git을 터미널로 때리기 시작했습니다. 입사할 때는 stash와 reset, checkout 등 기본적인 명령어는 몇몇 옵션들과 함께 익숙하게 사용할 수 있는 수준이 되었습니다. 이또한 면접에서 어필되었고, 입사 후 특히! 도움된 부분입니다. 

-> 입사 후 느낀 바 버전 관리는 생각보다 더욱 중요한 것이었습니다. 다만 혼자서 이러한 버전관리는 연습하는 데 한계가 있단 점이 아쉽습니다. 하지만 몇 번 협업 중에 삽질을 하다보면 결국 사용하는 git 명령어의 패턴이 정해져있다는 걸 나중에 깨닫게 됩니다. 일단 git 이란 것이 어떻게 돌아가는지 근 크림 remote과 local의 관계와 git의 병합원리, conflict 해결  방법 등을 이해하고,

reset 

checkout 

branch

log

stash

push 

pull

merge

fetch

commit

diff

add

등과 각 명령어의 대표적 옵션만 제대로 알아도 웬만한 문제는 다 해결할 수 있지 않나 생각해봅니다.

(당장 떠올린 거라 빼먹은 게 있을 순 있습니다.)

-> 깃을 공부할 때 커맨드 베이스로 공부를 하기보단, 결국 이 깃이란 물건이 어떻게 돌아가는지 원리를 제대로 이해하는 게 우선되야 한다고 생각합니다. 리모트 저장소, 로컬 저장소, 그리고 자신의 작업공간, 헤드 브랜치, 작업 브랜치 등등의 움직임 등등을 말이죠. 커맨드 공부는 병행 또는 그 다음입니다. 깃이란 물건의 전체 상을 이해하지 않은 채, 무작정 커맨드 공부부터 들어간다면 언젠가 그게 꼬이는 날이 오게 됩니다.(제가 그랬거든요)


(6) 그외 이것저것 막 건드려보기

일단 이것저것 많이 해봐야 시야도 넓어지고 자신의 커리어에 대해서도 더 깊게 고민하게되는 것 같습니다. 자신이 걸어야 할 길도 더 명확해지구요. 결국 이것저것 막 건드려보는 건 다른 언어 건드려보는 것도 매우 좋구요. 저같은 경우엔 유니티나 클라우드를 깔짝거려봤습니다. 머신러닝은 너무 어렵더라구요. 당장 제 머리론 불가능했습니다.

전 지금 주 언어는 java, php지만,  파이썬, C, C#, Ruby 등을 학원 다니면서 짜투리 시간에 배웠었습니다.파이썬은 알고리즘 공부하면서, c는 포인터 개념 이해하려고, c#은 유니티 공부하면서, ruby는 코드카데미란 사이트에서 파이썬이랑 뭐가 다르나 싶어서 해봤습니다. 그리고 azure나 aws에서 일정 기간 동안 무료로 서비스 이용하는 그런 거 있거든요. 괜히 만들어놓은 프로젝트 클라우드에 deploy 해보고 그랬습니다. 그런 것도 면접에서 어필되더군요. 특히 유니티 3d로 튜토리얼 몇 개 따라하면서 게임 만든 것도 it 업계에 대한 관심이란 점에서, 면접 시 어필이 되었었습니다.

-> 1년 전 생각과 변함없습니다. 

-> 무언가 관심이 있고 배워보고 싶다면, 튜토리얼 몇개 따라해보거나 책 따라해보는 건 별로 의미없고, 게시판이라도 좋으니 뭔가 만들어보는 방식으로 (소위 토이 프로젝트라고 하죠) 배우는 게 베스트 오브 베스트라고 생각합니다. 그리고 이해 못하는 것이 있다면 물고 늘어지는 자세도 필요하다고 봅니다. 그 과정에서 배우는 것도 참 많더군요(설사 문제가 해결되지 않더라도.)



(7) 주력 언어 하나는 집중해서 제대로 이해해놓기

fender 님의 덧글을 보고, 제가 놓친 부분이 있어 덧붙여 씁니다.

자바든 파이썬이든, 언어가 무엇이든 간에, 자신의 주력 언어가 있고 그 주력 언어의 패러다임과 사용법을 제대로 이해하는 것이 중요합니다. 예로 들면 자바를 멀티 쓰레드 식으로 짤 수 있는 사람과, node js를 싱글 스레드 식으로 짤 수 있는 사람은 단순히 자바의 문법만 쓸 줄 알고 자바스크립트의 문법만 쓸 줄 아는 사람과는 질적으로 다를 것입니다.

객체지향 언어를 배워놓고 절차지향 식으로 코드를 쓰면 의미가 없는 것처럼, 한 언어를 제대로 이해한다는 건 결국 언어의 철학까지 이해한다는 것을 의미합니다. 그리고 언어를 하나 제대로 이해하게 되면 다른 언어의 흡수도 매우 빨라집니다. (6)번보다는 (7)번이 훨씬 중요하다는 걸 말씀드리고 싶습니다.

-> 마지막 문장 제외하고 1년 전 생각과 변함없습니다. 마지막 문장에선 "훨씬"만 뺄 것 같군요. 지금의 저라면.

->  개인 취향이 있겠습니다만 해당 유튜브 의견에 동의합니다. 저도 C 공부하면서 많은 걸 배웠기에..

https://www.youtube.com/watch?v=ESU2IkFj9VM


(8) 데이터베이스

데이터베이스는 엄청나게 중요한 것이었습니다. 사실 운용하는 서비스에게 "데이터"만큼 중요한 건 없으니까요. 그걸 어떻게 효율적으로 잘 관리하냐는, 말할 필요도 없이 중요하겠죠.

사용법의 얘기를 하자면 기초 사용법인 CRUD을 넘어서, 거기에 더해 index에 대한 이해 + 기본적 사용법까지는 알아야 하지 않나 생각합니다. 욕심을 부려본다면 explain, view 정도려나 싶습니다.

데이터베이스의 운용측면에서 봤을 때 fail over, master-slave. replication까지 알아둔다면 입사하고 한동안은 디비쪽으로 더 공부할 게 없지 않을까 생각합니다. 특히 failover, master-slave, replication은 왜 저런 게 필요하고 어떻게 돌아가는지에 대한 개념만 잘 알아둬도 신입면접에선 큰 어필이 되지 않을까 싶습니다.


(9) 디자인패턴 

디자인패턴이야말로 코더에게 있어서 일종의 손자병법이지 않나 싶습니다. A같은 기능을 만들고 싶을 땐 이렇게 설계하면 되고, B같은 기능을 만들고 싶을 땐 이렇게 코딩하면 되고 그런 직접적 방법론을 제시해주는 가이드라인이랄까. 튜토리얼만 따라하면 별로 와닿지 않고 디자인 패턴의 "사고방식"을 이해하고 그걸 업무에 실제 적용해봄으로써 하나씩 내 것으로 만들어나가게 되는 것 같습니다. 개인 프로젝트를 할 때부터 디자인패턴 등을 적용/신경 쓰면서 만들다보면, 프로그래머로서 코딩실력도 늘고, 검증된 방식에 따라 코딩을 함에 따라 결과물도 좋게 나오는 일석이조를 성과를 낼 수 있다고 봅니다.


개인적으로 생각하는 중요도

(1) > (7) > (2) > (4) > (3) > (6) > (5) 

-> 1년 후 재고 해봤을 때, (1) = (7) > (2) > (6) > (5) > (3) = (4) 인 것 같습니다. 좀 변했네요.

다만 어디까지나 "비전공자 신입이 전공자한테 안 밀리기 위해서의 순위"일 뿐이지, 한 명의 프로그래머로서, 장래까지 고려한 순위는 아니라는 점 명심해주셨으면 합니다. 

-> 2018년4월 시점에서 다시 한 번 재고했을 때,

(1) = (7) = (2) > (9) = (8) > (6) > (5) > (4) > (3) 

8번과 9번이 추가됐네요. 어디까지나 "비전공자 신입이 전공자에게 안 밀리기 위해서의 순위"를 개인적으로 적어본 것일 뿐임을 다시 한 번 명심해주셨으면 합니다. 그냥 적당히 코더로 먹고 살거면 네트워크랑 운영체제같은 거 뒤로 빼셔도 되요.



 저걸 언제 다하냐고 의문을 표하실 분도 계시지만 단기학원이 보통 6시에 끝나는 밥먹고 집에와서 공부하고 주말에도 공부하면 됩니다. 어디 멀리 이동할 때면 책들고 가서 이동기간에도 공부하시면 더 좋습니다. 특히 학원은 잡담떨고 노는 무리에 휩쓸리지 않는 것이 중요합니다. 혼자서 독학하시는 분이라면 공부할 시간 넘쳐나실테니 코딩뿐만 아니라 아래에 소개할 기반지식에도 시간을 어느 정도 할애를 하시는 걸 강력추천드립니다. 시간이 정 없으신 분은,  3,4,5,6 번 포기하고 1,2,7번에만 집중하시는 걸 권합니다.

덧글로 경력자분들이 고견을 남겨주시면 참고하여 글에 반영하겠습니다. 미숙한 신입이 함부로 글을 쓴 것도 같아서 조심스러울 따름입니다.


-> 솔직히 주중주말 올인해가며 공부하는 거, 힘듭니다. 저도 이젠 그렇게 못하고요. 근데 프로그래머는 결국 계속 배우지 않으면 도태되는 직업이더라구요. 끊임없이 배우지 않아도 먹고는 살테죠. 대신 욕심도 부려선 안된다고 봅니다.

근데 프로그래머에겐 기술도 기술이지만, 기술만큼 또는 그 이상으로 중요하다고 할 수 있는 게 있더군요. 실제 업무에 있어선 "일머리"라고 흔히들 말하잖아요. 그리고 "도메인지식"이라는 용어도 있죠. 저 두개가 생각보다 훨씬 더 중요하더라구요. 기술만 잘해서 될 게 아니라, 적당한 센스 그리고 커뮤니케이션 능력, 자신이 속한 산업에 대한 깊은 이해도가 종합적으로 작용을 하더군요. 그런 부분은 일에 치여가면서 배울 수도 있지만, 입사 전에 프로그래머 마음가짐같은 거 쓴 책 수두룩 하던데 그런 거 읽어보시면서 좀 익혀두시는 게 좋을 것 같다고 생각듭니다. 일본어를 읽을 수 있으신 분은 "達人プログラマ"라는 책을 추천드립니다. 개인적으로 늘 가슴에 품고 사는 말이 몇 가지 있어서 공유를 해보자면 다음과 같습니다.

"모르는 채 사용하지 말라"

"매사에 목적을 명확히 하라"

"문서화 시 가독성에 신경써라"

"읽기보다는 쳐보라"

"판단에는 이유와 기준이 있어라"

"묻는 질문에 먼저 답변하라"

"결론부터 말하라"

"급할수록 돌아가라"



아무튼 이 땅의 모든 비전공자 출신 개발자분들, 파이팅입니다.

건승합시다 우리

62
98
  • 댓글 68

  • kenu
    41k
    2017-02-01 00:45:38

    감사합니다.

    "주말 스터디 그룹으로 인맥 확장"을 조심스레 추천해 봅니다. 

    5
  • Hyperglide
    170
    2017-02-01 01:12:57

    혼자 독학하고 있는 입장에서 도움이 많이 되는 글이네요.

    뭘 공부해야되는지는 줏어들었는데 '어디까지 해야되는지를' 잘 모르고 있었거든요..

    추천드리고 갑니다~

    0
  • fender
    10k
    2017-02-01 01:46:17 작성 2017-02-01 01:53:24 수정됨

    우선 이런 문제에 대해선 경력이나 전공 여부에 관계없이 누구나 자유롭게 의견을 낼 수 있고, 다양한 시각이 있을 수록 특히 새로 입문하는 분들에게 도움이 된다고 생각합니다.

    그런 전제로 개인적으로 생각을 달리하는 부분만 말씀드리자면, 전 로우 레벨 지식은 입문 단계의 웹 개발자에게 중요한 내용은 아니라고 생각합니다. 꼭 웹 개발자가 아니더라도 자바나 C#, 자바스크립트 등의 고급 언어를 주력으로 한다면 알고리즘이나 운영체제 이론 등은 '알면 좋은' 지식의 범주이지 '반드시 알아야하는' 내용이라고 이야기하긴 어렵다고 봅니다.

    예를들어, 정렬 방법에 대해 자바 개발자가 반드시 알아야하는 기초 지식은 정렬 알고리즘 구현 방법 보다는 Comparable/Comparator 인터페이스의 의미와 사용 방법일 것이고, 자료 구조에 대한 필수 지식은 이진 검색 트리의 구현 방법이 아니라 컬렉션 API에 속한 각 유형의 특성 및 계층 관계를 이해하는 것이라고 봅니다.

    또한, 자바 개발자는 객체 지향만 제대로 이해하면 운영체제나 컴파일러 이론을 몰라도 스프링 프레임워크와 같은 크고 복잡한 API를 파악하는 데 무리가 없지만, 만일 팩토리 패턴이 무엇인지, 마커 인터페이스의 용도가 무엇인지 등의 지식이 없다면 그런 수준의 이해는 불가능할 것입니다.

    그리고 HTTP 프로토콜 정도는 저 역시 웹 개발자의 기초 지식이라고 생각합니다만, 자바 웹 개발자라면 특정 웹서버 제품의 설정 방법 같은 시스템 운영 영역까지 지식을 확장하기 이전에 최소한 서블릿 스펙은 필수적으로 이해해야할 것입니다.

    웹 개발을 떠나서 프로그래밍 언어에 대해 이야기하자면, 전 어떤 언어를 얼마나 수준 높게 사용할 수 있는지는 결국 해당 언어의 패러다임을 얼마나 완벽히 이해하고 있는지, 그리고 부차적으로 해당 언어 개발자들 간에 널리 통용되는 컨벤션이나 설계 방식, 도구 및 라이브러리 등을 얼마나 잘 알고 있는지에 따라 결정된다고 생각합니다.

    다양한 언어를 공부하는 것은 좋지만 최소한 주력 언어 하나는 반드시 해당 언어의 패러다임에 익숙할 정도는 익혀야합니다. 예컨대 자바 언어를 하면서 상속을 이용해서 무엇을 설계해본 적이 없다면 자바를 할 줄 아는 것이 아니라 자바 문법을 알고 있는 것에 불과합니다.

    그 단계에서 다른 언어를 배운다면 그냥 문법을 아는 언어를 하나 늘이는 것 뿐이고, 자칫 모든 언어를 반복문/제어문/함수의 수준에서 이해하게 될 위험도 있습니다. (여담이지만 '언어는 도구일뿐이다'는 이야기를 하는 개발자는 상당한 실력자가 아니라면 보통 그런 부류인 것 같고, 경험적으로 후자일 확률이 좀 더 높은 듯합니다.)

    물론 알아서 나쁜 지식이야 없겠습니다만, 특히 남들보다 늦게 시작한 비전공자라면 보다 시간을 효율적으로 쓸 필요가 있을 것입니다. 자바 언어 하나만 초급 수준을 벗어나려고 해도 상당한 수준의 노력이 필요한 만큼, 지나치게 주력 분야와 관계가 적은 지식을 공부하는 데 매달리는 건 바람직하지 않다고 생각합니다.

    운영체제나 저수준 알고리즘, 네트워크 스택 등의 지식이 모든 개발자의 기본 소양 쯤으로 치부되는 경향은, 그런 내용의 교재를 만들고 이를 가르치는 사람들이 공부하던 때는 지금처럼 개발 분야가 세분화, 전문화 되지 않았던 시절이기 때문이라고 생각합니다.

    10
  • 은하수
    1k
    2017-02-01 08:48:37

    fender 님께서 제가 놓친 부분을 정확히 짚어주셔서 글 내용을 일부 추가하였습니다. ㅎㅎ 감사합니다.

    0
  • NoDe
    2k
    2017-02-01 10:38:46

    와 좋은글 감사합니다. 

    저도 학원 6개월 다니면서 비전공자입장에서 전공자들보다는 잘했지만 현재 2000 초반 받고 있습니다.

    물론 금액이 중요하지 않지만 개발자 측면에서는 금액이 곧 실력이라는 생각이 드네요.

    제환공님 따라가려면 공부 빡시게 해야할 것 같습니다.

    질문 몇가지가 있는데 정보처리산업기사를 따려고 하는데요 (2년제 전문대 비전공자라서 ... 기사는 아직...)

    알고리즘공부에 도움이 많이 될까요??

    0
  • 100m8cho
    389
    2017-02-01 10:45:27

    좋은글 감사합니다.

    비전공자 파이팅~

    0
  • asdfqwerzxcvqer
    707
    2017-02-01 13:38:53
    화이팅입니다 혹시 포트폴리오 준비는 어떤걸 하셧는지 알 수 있을까요.?
    0
  • 은하수
    1k
    2017-02-01 14:29:24

    NoDe  님 안녕하세요. 제 기억이 맞다면, 정보처리기사 시험이 개편된 후엔 어떤지 모르겠지만 개편되기 전엔 알고리즘이 쉬운 것들만 있던 걸로 기억해요. 하지만 그럼에도 도움은 될 겁니다. 도표로 알고리즘을 표현해보고 그걸 익히면서 "논리적인 사고"를 배우실테니까요!


    341 님 안녕하세요. 신상이 밝혀질까봐 자세히 설명드리긴 어렵지만 자바로 웹사이트를 구축했습니다. 단순한 웹사이트와 차별화를 꾀하기 위해 보안에 대한 부분도 코딩을 하고, 각종 api 사용, 그리고 기술적으로 조금 깊게 들어간 부분까지 구현을 하였습니다. 그리고 유니티로 만든 미니 게임들도 같이 어필사항으로 포트폴리오에 집어넣었었습니다.



    그외 추천주신 분들 덧글 남겨주신 분들 모두 감사드립니다.

    2
  • 부자되세요
    257
    2017-02-01 15:13:51

    해외 어디쪽인지 알수있을까요?

    그리고 혹시 그쪽 국가의 신입은 최대 나이가 어느정도까지인지 궁금합니다..

    그리고 정처기 같이 국가 자격증 인증이나 토익이나 점수 같은것도........알수있다면 궁금하네요..

    0
  • J.D
    123
    2017-02-02 07:16:12

    좋은 글 감사합니다 보고 열심히공부 하겠습니다!!!!

    0
  • George
    8
    2017-02-02 08:01:50

    저는 컴퓨터 전공자이며 20대 이지만 4000이상 연봉을 받고 있는 스타트업 개발자입니다.

    컴퓨터과학을 전공한 학생이 반드시 충분히 이해 하고 있어야할 5가지 과목

    1. 운영체제
    2. 데이터베이스
    3. 자료구조 & 알고리즘
    4. 네트워크
    5. 컴퓨터구조

    하지만 이 5가지를 안다고 해서 회사 생활 잘하는건 아니겟죠? ㅋㅋ

    보안, 협업툴, 프레젠테이션 능력, 어려운것 쉽게 설명하기, Live Demo의 늪 피하기

    꾸준한 스터디 등등 회사생활 하면서 필요한건 정말 많죠 


    제환공님 말씀 감사합니다. 새겨 들을 말이 많아 배우고 갑니다.

    0
  • 이민철
    434
    2017-02-02 10:14:26

    허허.. 이렇게 공부를 해도 컴퓨터 포멧이란 고도의 기술을 터득하긴 어렵군요 ㅎㅎ

    0
  • kolol
    933
    2017-02-02 17:40:50
    이정도이시면 전공이든 비전공이든 상관없을거 같네요 좋은글이네요 乃
    0
  • 은하수
    1k
    2017-02-02 18:34:49

    George 님 안녕하세요 분명 말씀하시는 것처럼 실제 직장생활에선 개발실력보다 더 중요한 것도 많아보입니다 ㅎㅎ 초짜인 제게 아직 그런 부분은 미숙한 것 투성이입니다만! 소중한 첨언 감사드립니다 :)


    그리고 덧글 달아주신 이민철님 kolol님 감사드립니다! (포멧은 날잡아서 하루 배워둬야할 것 같습니다)


    0
  • de
    2017-02-03 15:22:28

    고생 많이 하셨네요. ㅎㅎ

    저도 일본가고싶은데 토익과, JLPT N1 이 문제군요... 

    2년 후 라인을 목표로... @.@ 전배같은게 되면 좋으련만..ㅠㅠ


    혹시 소뱅이나 도코모쪽이신가요?

    0
  • 스타
    3k
    2017-02-03 19:16:58

    쉽게 이야기 해서 비전공자로 살아왔으니 전공자를 따라 잡기 위해선 부단히 노력해야 한다는 의미로 받아 들여지네요. 전공 여부를 떠난 이야기이기도 하거요.. 저도 40대 중반을 향해 가지만 여전히 모르는 것은 많고 부단히 노력하고 있습니다.

    0
  • gring2
    33
    2017-02-04 11:00:03

    왠지 제가 알고 있는 분하고 비슷하다는 느낌이 ㅎㅎ.

    좋은 글 잘 보고 갑니다.

    저같은 비 전공자 신입에게 희망이 되는 글이네요

    0
  • yangbuk84
    39
    2017-02-04 11:18:11

    좋은 글 감사합니다. 저도 비전공자에 이제 7년차지만 많은 것을 느끼는 글이네요..

    좋은 회사 잘 들어가신 것 축하드려요^^


    0
  • byeworld
    2k
    2017-02-04 23:38:59 작성 2017-02-05 00:50:18 수정됨

    (1) 네트워크(웹서버포함)

    (2) 운영체제(컴퓨터사이언스 포함, 주로 리눅스 중심으로)

    (3) 알고리즘 및 자료구조

    (4) 보안

    (5) 버전 관리 툴 (git)

    (6) 그외 이것저것 막 건드려보기

    (7) 주력 언어 하나는 집중해서 제대로 이해해놓기


    위에 쓰신 목차보다는 내용에서 공감되는 부분이 많군요.

    전공자들이 졸업 후에 현업에 들어가서

    '배운 것들이 이렇게 연결되는구나.' 하고 바로 느껴지는 것들이 있는데

    비전공자들도 비슷하게 느끼게되나 봅니다.


    웹개발로 한정해서 그런지 모르겠지만, 조금 덧붙여야 할 것 같은 생각이 드는 부분이 있군요.

    직접적으로 사용하고 활용하게 되는 부분과 내공으로 작용하게 되는 요소들로 구분할 수 있는데, 

    그러한 생각들을 덧붙입니다. 


    1. 소프트웨어공학 

    크게보면 개발과정에 대한 이해이고,

    내부적으로 들어가면 결과물인 개발된 시스템의 품질과 직접 연결됩니다. 

    이 분야에 대한 이해나 지식이 부족할 경우, 같이 일할때 답답한 부분이 생길겁니다. 

    (주변에서는 안타까운 모습을 보일 수 있습니다. )

    프로젝트에서 보면, 개발자 중에는 '내 할 건 다 했는데..' 말하는 개발자중에

    이런(=소프트웨어공학에 대한 이해나 지식이 부족) 경우에 해당하는 분들이 꼭 있습니다. 

    프리중에도 이런 분들 있는데, 아쉬운 생각이 드는게 이럴 가능성 때문입니다.

    소프트웨어공학에 대한 이해나 지식이 부족한 사람을 고객이나 윗분으로 만날 경우

    고난(?)을 겪을 수도 있습니다. 

    그런 사람 밑에는 아무리 뛰어난 개발자를 붙여놔도 능력이 제한될 수 있습니다. 

    (장수가 될 사람이 마당쓸고, 부엌에 쪼그리고 앉아 무를 깎는 모습(?)을 볼 수도 있습니다.)

    단적으로 말해서, 실력이 되는 것으로 보이는 개발자 (이론에 대한 이해나 작성된 프로그램을 보면 충분한 거 같은데 싶은.. )가

    퍼포먼스 안나오는 사람 보면 윗사람이나 고객이 이런 경우더군요.

    (제 경험으로는 모두 그랬으나 다른 분들은 어떤지 모르겠습니다. ) 


    2. 데이터베이스

    웹개발이라도 데이터베이스를 사용할텐데 빠져있군요. 

    단순히 SQL사용이나 해당제품(MySQL, MS-SQL, Oracle..etc)을 넘어서 ACID까지는 이해하시길 권합니다. (당연히 그 이론들이 제품들에 반영되어 있는 것입니다.)

    추가)..

    데이터베이스 분야의 좋다는 책을 추천하면 좋겠으나, 쉬우면서도 이론도 탄탄한 책이어야 할 텐데

    데이테베이스 배움터가 생각나긴 하는데 그걸 본 게 5~6년은 된 거 같은 생각이 드는군요.. 

    그 정도 수준은 되었으면 싶은데 싶군요..

    방통대 책도 나쁘지 않았던 기억이 있긴 하군요.

    ('대용량 데이터베이스 솔루션'이나 '돛단배'책은 추천하지 않습니다.)


    3. 프로그래밍 언어론.

    비전공자분들에게는 공부하기에 난감할 수 있어서 권하고 싶지는 않은데,

    비전공자 분들이지만 실력이 뛰어난 분들은

    자기가 사용하는 '언어에 대해서 잘아는 것' 보다는

    '언어에 반영된 이론(언어론)을 잘 안다'는 생각이 듭니다. 

    프로그래밍 언어론을 공부한 것은 아니지만, 반영된 이론들을 잘 알고 그 핵심을 이해하고 있더군요.


    아래는 언급하신 내용에 대한 제 생각들입니다. 

    (1) 네트워크(웹서버포함)

    네트워크에 대한 공부라기보다는 웹환경, 네트웍 환경에 대한 이해입니다. 

    네트웍 개발자가 아니라면, 네트워크 교재로 굳이 공부하실 필요는 없습니다. 


    (2) 운영체제(컴퓨터사이언스 포함, 주로 리눅스 중심으로)

    공룡책 말고도 stalling 책도 좋습니다. (공룡책은 말이 좀 어렵죠..)

    플린(Flynn)책도 좋다는 말을 들었는데, 국내에는 번역서가 없는거 같더군요.. 

    실무적으로 생각해서 사용법 중심으로만 익히려는 분들을 봤는데,

    사용법을 익히는 것도 필요하긴 하지만, 왜 그런식으로 되어 있는지에 대한 이해가 중요합니다. 

    단순히 서버 사용법을 넘어 프로그램 개발에 대한 내공적 요소로 작용합니다. 

    - 리눅스는 유닉스에 대한 크론으로 사용하는 입장에서는 그렇게 차이가 나지는 않습니다.

    리눅스가 있다보니 유닉스가 없어도 사용법을 익히는데 지장이 없다는 장점도 있으니 유닉스에 대한 접근에도 유리하게 작용할 것입니다. 


    (3) 알고리즘 및 자료구조

    위에 쓰신 내용은 전공자 입장에서는 자료구조론에 해당합니다. 

    혹시나 알고리즘까지 찾지는 마시길 바랍니다. 


    (4) 보안

    전공자들도 평소에 개발하면서 그렇게 깊이 고려하면서 개발하지는 않습니다. 

    시큐어 코딩이라는 부분도 있지만, 직접 관련되지 않는다면 깊이 공부하지는 않습니다. 

    (보통 개발표준에 반영되어 있기 마련입니다.)

    보통 운영체제나 DB, 네트워크 등을 공부할 때

    그 속에 보안 요소들에 대한 이해 정도를 하고 있는 경우가 많다고 생각하시면 됩니다. 


    (5) 버전 관리 툴 (git)

    소프트웨어 공학에 녹아 들어 있는 부분이긴 한데,

    이 부분은 전공자들도 따로 배우는 것은 아닙니다. 


    (6) 그외 이것저것 막 건드려보기

    전공자들도 수많은 삽질(?)과 함께 성장합니다.

    이미 겪은 부분들을 비전공자 분들은 안겪은 것이라고 생각됩니다.

    그 과정 속에서 쌓이고 적립되는 것들이 있고,

    그것들과 전공(=이론)과의 연결을 통해서 자기것이 되는 것이죠.

    바로 위의 '(5)버전관리 툴'도 그런 것에 해당합니다. 


    (7) 주력 언어 하나는 집중해서 제대로 이해해놓기

    이 부분은 위에 프로그래밍 언어 부분에서 설명한 부분과 직접 연결되는 것 같습니다. 


    이상입니다. (수정해서 저장하는데 왜이렇게 자꾸 오류가 나는지... T^T)

    0
  • 학이시습지불역호아
    26
    2017-02-05 16:42:19

    학원시간안에 저걸 다 공부하셨나요. 허걱..

    저도 나름 많이 했다고 자부 했는데 놀았나봅니다...

    0
  • start28
    36
    2017-02-05 18:09:05

    위에 기재해 주신 모든 부분을 공부하시는데 대략 몇개월정도 소요하셨나요?


    현재 건설대기업 계열사 일반사무직으로 입사한지 1년차인데 직무에 대한 회의로 1~2달안으로 퇴사 후


    프로그래머로 전직을 하려고 합니다.


    그러나 현재 나이가 28인지라 최대한 빨리 지식을 습득하여 적어도 29에는 취직을 해야합니다.


    즉 저에게는 대략 1년이라는 시간이 주어지게 되는데 위에 기재해 놓으신 기초지식을 1년내에 다 습득을 할 수 있을지 궁금합니다.


    참고로 직장다닌지 7개월 차부터 퇴근 남는 시간 및 주말을 이용하여 C언어 와 자료구조는 어느정도 익혀놓은 상황입니다.


    학부시절 전공이 정보통신공학이라 정보처리기사는 습득해 놓은 상태지만 프로그래밍 관련 기초지식은 너무나도 부족하여 거의 기초부터 다시 시작한다는 마음가짐으로 공부를 할 예정인데 1년이라는 시간안에 이루어낼 수 있을지 걱정입니다. 

    0
  • 훈마로
    240
    2017-02-06 10:07:31

    @start28
    글쓴이 분은 아니지만, 저도 비전공 학원 출신으로 말씀드리자면
    보통 국비학원 6개월 다니실텐데 남는 시간 (저녁, 주말)에 시간을 내서

    적어도 저 목차 대로 관련 책 하나만 한달에 한권씩 읽는다 생각하면 6개월이면 기초는 쌓을 수 있다고 보네요.

    나머지 6개월을 면접 준비 + 추가로 부족한 부분 공부 + 포트폴리오 구성 하면 좋을 것 같아요.

    학원 다니시면 3개월 이후 부터는 학원 내에서 프로젝트하는데 시간이 많이 들 수도 있으니 다니기 전부터

    커리큘럼 관련된 책을 한번씩 보시는 것도 좋아요.

    흔하디 흔한 자바+오라클 웹 개발자 -> SI 테크가 학원 6개월이면 충분합니다.

    문제는, 정말 진짜 개발자.. 소프트웨어 엔지니어 소리 듣고 자신있게 나 개발자야 말할 수 있고

    솔루션 회사나 외국계나 더 좋은 회사로 가려면 그 후에 얼마나 노력하는가가 중요하겠죠.


    한가지 조언하자면.. 학원 졸업 후 바로 취업안하고 공부 더하고 면접 많이 보시면 시작부터 좋은데 갈 기회가 생깁니다.

    전 아무것도 모르고 나름 열심히 공부했다 생각하면서 바로 취업했는데 후회했거든요. 면접 더 많이 보고 내가 부족한게 뭔지도 알면서 공부를 더 하고.. 회사를 보는 눈을 나름 길러보는 것도 좋아요

    0
  • 모모는철부지
    1k
    2017-02-07 20:22:25

    열심히하는  사람들은  다  따로 있더라구요..


    저처럼  농땡이  빼고 ㅎ


    경력은  몇년정도 되셨나요?

    0
  • 은하수
    1k
    2017-02-08 21:03:22

    @devamu 두쪽다 아닙니다. ㅎㅎ 회사 이름을 말씀드리기엔 신상 때문에 조금 쫄려서...ㅎㅎ 양해부탁드립니다.


    @스타 지당하신 말씀입니다!


    @byeworld 전공자의 시각에서 부족한 글을 보완해주셔서 감사드립니다 ^^ 덧글까지 다들 읽어주셨으면 좋겠네요


    @start28 대략 8~10개월 정도 소요되었습니다. 죽을 힘을 다하면 1년 안에 저 이상도 가능합니다. 전 정말 열심히 했지만 죽을힘까지 다하진 않았어서..


    @모모는철부지 아직 1년차 초보입니다 ^^



    그외 덧글 달아주신 모든 분들 감사드립니다.




    0
  • 훈훈
    311
    2017-02-10 22:02:02

    궁금한게 있는데 자료구조 관련해서 c나 파이썬 쓰는 것 중 파이썬을 쓰는 이유는 무엇인가요??

    c같은경우는 다들 많이 하는건 알고있는데 파이썬은 왜인지 궁금하네요

    0
  • 은하수
    1k
    2017-02-10 22:21:50

    훈훈님, 안녕하세요, 몇 가지 의견을 내볼 수 있겠는데, 먼저  파이썬이 최근 여러가지 4차 산업혁명과 관련하여 각광을 받고 있는 핫한 언어이기도 하고요. 또 파이썬의 문법은 심플하고 보기 쉬운만큼, 자료구조 등을 배우는데 더 코드를 이해하기 쉽겠죠. 어디까지나 제 의견이니 참고만 해주시기를 ㅎㅎ 더 근본적인 이유가 있을 수 있습니다. 전 초보라 거기까진 모르겠네요

    1
  • 훈훈
    311
    2017-02-10 23:34:59

    제환공님 답변 감사합니다 확실히 파이썬은 요새 핫한거 같긴 합니다 네이버에서도 파이썬 관련 컨텐츠도 있고 좋은 언어인거 같습니다. java 추천안하고 c랑 파이썬 쓰셨길래 의견 여쭤봤습니다. 좋은 하루 되세요~

    0
  • Jaeya
    37
    2017-02-11 14:25:16

    2번째 정독해서 읽었는데 공부하셨던 책 리스트 정도 언급해주실 수 있으신가요? 참고 하고싶네요!

    0
  • 은하수
    1k
    2017-02-11 15:13:04
    @Jaeya 안녕하세요부족한 글인데 읽어주셔서 감사합니다. 제가 읽은 책들은 거의 다 일본어 또는 영어로 적힌 책들이라서 혹 일본어나 영어도 상관없으시면 추천드릴테니 추가 덧글 남겨주십시오. 한국어로 된 책은 거의 국비교육과정에서 배운 책들인데 그 책들은 추천드리고 싶지 않습니다. 그나마 자바의 정석, 그리고 이것이 리눅스다(centos)는 따로 사서 읽어본 책인데 괜찮았었습니다. 그리고 udemy 나 codeacademy 에서도 즐겨 공부했었습니다. 
    0
  • 파이팅
    36
    2017-02-12 05:39:19

    저는 비전공이고 이제 일주일차하면서 정보처리산업기사준비중인데 정말 많이 도움이 되었습니다 지금보다 훨씬 열심히해야하는거였네요 각오가 부족했던것 같습니다

    질문이 있는데요

    학원에 다니시자마자 저 공부들을 시작하셨나요?

    지금 자바1주지났는데 무엇부터 손을대야 좋을까요?

    공부하는 순서에있어서 경험해보신 선배로서 어떤순서가 효율적일지 여쭈어도될까요

    0
  • 은하수
    1k
    2017-02-12 19:41:21

    @파이팅

    파이팅님 안녕하세요. 사실 저렇게까지 안해도 어지간한 취업처는 문제 없으실 겁니다. 학원 다닐 땐 정보가 없었으므로 바로 시작할 수 없었지만, 자바 언어를 어느정도 깊게 공부하니 다른 걸 찾아보게 되더군요. 그러면서 컴퓨터 전공한 친구한테 이런저런 조언도 들으면서 자체적으로 커리큘럼을 만들어서 준비를 해나갔습니다. 자바 1주 지나신 상태라면 일단 자바를 콜렉션, 상속, 다형성, 캡슐화 정도까진 쉽게 다룰 수 있을만큼 빠르게 진도를 빼시는 걸 목표로 하시는 게 좋을 것 같습니다. 그리고 객체지향 언어라는 것의 패러다임을 이해하기 위한 공부도 하신다면 더더욱 좋을 것 같네요.

    그 후에 제가 위에 적은 것들을 보셔도 늦지 않습니다! 순서는 제가 게시글 마지막에 적어두었습니다

    0
  • shg
    102
    2017-02-13 09:17:29 작성 2017-02-13 09:19:04 수정됨

    제환공님글 잘 보았습니다.

    학부와 대학원때 나름 전공이라 네트웍이나 알고리즘같은거 배웠는데

    막상 사회로 나와보니 거의 SI성 프로젝만 하다보니
    정렬은 전부 SQL ORDER BY가 다 해결해주고..
    웹서버 was db 프레임웍은 전부 기존제품 갖다쓰고
    그 위에서 돌아가는 로직 화면이나 만들다 보니
    (동시접속이나 용량도 전부 was db 웹서버 파라미터 돌리고 서버용량 늘리는걸로 해결)
    제환공님이 언급하신 네트웍, 알고리즘, 언어 완벽마스터 이걸 소홀히한점 있는데 
    나름 자극이 됩니다.
    아 보안은 행자부 secure코드 지침 있어서 이거 지키라고는 꼭 하죠.

    그리고 요즘 스칼라나 하스켈같은 함수형언어가 앞으로 뜰거라 한다는데
    기존 C나 java같은 OOP 언어와는 아예 사고방식 자체가 달라서 적응하기가 어렵네요.
    4차산업의 기수 머신러닝도 확률통계 행렬연산 선형대수 이런게 등장해서 너무 어렵네요.
    앞으로는 이런것도 알아야 경쟁에서 밀리지 않을텐데 하는 생각이 듭니다.





    0
  • Halways
    3
    2017-02-13 18:57:28

    안녕하세요

    저는 서울 중상위권 대학에서 어문학을 전공한 학생입니다.

    졸업후 취업을 해봤지만 전혀 전문성이 생기지 않는 업종이라 생각되어

    웹개발자 공부를 해보려고합니다.ㅜㅜ

    컴퓨터는 전문적으로  공부해본적 없는 전형적 문과생이라

    기간은 1년정도 잡고 공부하려구합니다.

    평소 공부하는 것은 어느정도 자신있어 하는편인데 1년 정도의 시간동안 노력한다는 가정하에

    글쓴이분과 같은 정도의 회사에 취업을 할 수 있을지..

    그리구 어떻게 노력하면 좋을 지 궁금하여 여쭤봅니다.!

    바쁘시겠지만 답변해주시면 정말 감사하겠습니다.




    1
  • latelove
    506
    2017-02-16 17:51:55

    Halways / 도전해보세요. 하지만 이과계열은 확실히 이해의 과목이라는 점이 힘들꺼에요.

    특히 컴퓨터는 추상화를 다루는 점에서 더욱 더~

    그리고 글쓴이는 다른 무엇이 있거나 피나는 노력이 있지 않았을까요

    신입으로 저런데 입사하기 절대 쉽지 않아요

    0
  • 은하수
    1k
    2017-02-16 19:41:04 작성 2017-02-16 19:41:49 수정됨

    @shg님 안녕하세요.  저도 하도 함수형함수형 거리길래 스칼라 깔짝거려봤는데, 와 정말 패러다임을 바꾼다는 게 생각보다 더 어려워서 일단 잠시 접어뒀습니다 ㅎㅎㅎㅎ 제 내공이 쌓이면 다시 하려구요.  머신러닝은 그냥 아직 까마득한 산이네요. 아직 갈 길이 멀다고 느낍니다!


    @Hayways 님 안녕하세요.  저도 인문학을 전공했던 사람으로서 반갑습니다. 종합적으로 1년 정도 걸렸다고 봅니다. 저도 공부를 시작하기 전까진 컴퓨터에 대한 공부 워드 프로세서 3급인가밖에 한 적 없고 심지어 모스 엑셀은 탈락까지 해봤습니다 ㅋㅋ 저는 대신 언어적 베이스는 있어서 해외취업을 노릴 수 있었다는 점에서 운이 좀 잘 풀린 거고, 글쓴이님도 어문학 전공자로서 자신의 언어에 자신이 있다면 해외취업을 한 번 고려하시는 것도 나쁘지 않을 거라 생각합니다. 노력에는 왕도가 없어서 정말 시간을 쏟고 유혹거리에 안 빠지는 게 최선인 것 같습니다. 건투를 빕니다 !


    @latelove 저는 면접운도 좋았던 편인 것 같습니다. 확실히 운칠기삼이라는 말을 다시 한 번 상기하게 됩니다. 대신 답변해주신 점 감사드립니다.



    0
  • crabby
    6
    2017-04-23 14:34:48

    대단하십니다

    0
  • nadine
    2
    2017-05-20 00:34:06

    안녕하세요! 저도 비전공자 국비지원교육 받은 취준생인데, 취업이 원활하지못해 더 공부를 하려고하다 이글을 발견하게 되었어요! 정말 도움이 많이 되었습니다. 다른것들은 대체적으로 이해가 되는데 1번에 네트워크 관련해서 마땅한 자료나 서적을 찾기가 힘드네요ㅠㅠ 시중에 나와있는 책들은 대부분 네트워크 개발자들이 보는 서적인것같고 웹서버에 관련해서 책을 찾아보면 될까요...?

    0
  • 은하수
    1k
    2017-05-26 11:27:17

    crabby

    실제론 대단할 거 없는 평범한 신입입니다 ㅎㅎ

    nadine

    웹 서버는 책도 많은 걸로 알고 있습니다. 하지만 웹서버 개괄을 다룬다기 보단 아파치라든가 nginx 이렇게 하나의 웹서버를 정해서 다루는 책이 많겠죠. 이쪽도 버전따라서 바뀌는 게 많으니 버전같은 거 잘 확인하셔서 사셨으면 합니다. 그리고 네트워크 개발자가 보는 책이라도 기초책은 큰 도움 되실겁니다. 결국 내용이 다 엮이고 엮이거든요.



    0
  • 대추접속중
    16
    2017-07-15 21:50:00 작성 2017-07-16 03:53:08 수정됨

    유용한 정보 공유해 주셔서 정말 감사합니다.

    혹시 영어로된 책으로 공부 하셨다고 하셨는데 책제목 알려주실수 있으신가요??

    그리고 제가 이글보고 리눅스 redhat 을 설치하는 도중에 number가 없다고 설치를 못하고 있는데 따로 리눅스를 구입을 하셨었나요??

    마지막으로 자바 부터 공부 하셨다고 하셨는데 홈페이지 제작하는것부터 공부 하셨는지요...?

    바쁘시겠지만 답변 부탁드리겠습니다(__)

    0
  • 아리어리
    45
    2017-08-23 10:32:57

     

    은하수 1년 과정동안 학원을 꾸준히 다니신건가요?(국비지원 학원 다니셨으면 어디학원의 무슨과정 들으셨는지 추천 부탁드려요ㅠ) 기본적인 컴퓨터 관련 지식이 하나도 없는 비전공자여서요.. 먼저 독학으로 기본을 쌓고 학원에 들어가서 배워야하는지, 학원 6개월 과정이 끝난 후에 따로 공부하면서 취업을 준비해야하는지 ..어떤 과정을 거치셨는지 궁금합니다~  (영어성적이 안좋아서 ㅠㅠ외국계 신입은..정말 못넘을 문턱이네요ㅠㅠ부럽습니다 흑흑,,)
    0
  • 은하수
    1k
    2017-08-24 13:04:20

    @대추접속중

    답이 늦었습니다. 어떤 책 말씀이신가요? 주제를 알려주시면 좋을 것 같습니다. 경우에 따라 구글 튜토리얼로 공부한 경우도 많아서요. 


    @아리아리

    국비지원은 꾸준히 다녔고, 신상문제 때문에 학원은 알려드리기 힘들지만, 애초에 학원은 별로 중요하지 않아요 제가 있던 곳도 잘가르친 곳도 아니었고요, 독학으로 기본쌓는 건 시간낭비라고 생각하고 바로 들어가서, 자기시간에 기본을 공부하는 게 좋은 것 같네요. 어차피 학원에서 기본은 안 가르쳐요. 실무에 필요한 필수적인 것들만 알려줄뿐. 취업준비는 따로 알아보기도 하고 학원에서 알아봐주기도 합니다. 파이팅입니다.

    0
  • 대추접속중
    16
    2017-08-28 11:42:35
    답변 정말 감사합니다. 책은 어쩌다보니 저한테 맞는책을 찾아서 공부중에 있습니다. 지금 문제가 파이썬 베이직 다끝내고 프로젝트를 할려고 하는데 뭘 어떻게 해야할지를 모르는 상황입니다...혹시 프로그래밍 언어 공부하실때 따로 프로젝트 만드셨는지요? 혹시 추천할만한 공부방법 있으시면 답변 부탁드리겠습니다. (__)
    0
  • 은하수
    1k
    2017-08-28 19:39:20

    @대추접속중


    지향하시는 바가 무엇인지에 따라 많이 다를테지만, 대다수를 점하는 웹프로그래머라면 파이썬의 프레임워크를 배우는 책을 고르시면 될 것 같습니다. 장고랑 플라스크가 있는데 아무래도 좀더 공부량은 많아지더라도 점유율이 높은 장고가 나을 듯합니다. 파이썬 웹프로그래밍은 딱히 책으로까진 공부하지 않아서 추천드리긴 어렵겠네요. 전 취업 준비하면서 따로 개인프로젝트까진 준비하지않았고 국비과정에서 마련해 준 프로젝트 기회를 잘 살리도록 노력했었습니다. 추천 공부법이라고 하기엔 뭐하지만, 뭐든 직접 구현을 해봐야지 책만 읽어선 의미가 반감된다는 점이랑, 책의 예시들은 거의 옳은 예시만 있는만큼 비판적 사고 없이 읽으면 따라치기밖에 안되므로, 자기가 만들고 싶은 것을 직접 만들어보면서 그때 필요한 걸 찾아배우고 삽질하며 실력을 늘리는 방식을 권해드립니다.

    1
  • 대추접속중
    16
    2017-08-30 11:49:24
    친절한 답변 대단히 감사합니다! 완전 프로그래밍 무지에 가까운뇌로 시작할려니 여러장벽에 부딪히네요 ㅎㅎ 은하수님 덕분에 어떻게 풀어나갈지 가닥을 잡았습니다. 대단히 감사합니다! 하시는 일 잘되시길 빌게요!
    0
  • 은하수
    1k
    2017-08-30 19:21:31

    @대추접속중


    건승하셨으면 합니다. 이제 입사 1년쯤 되었으니 한 번 개정해야겠군요

    제가 예전에 보던 시각과 좀 달라진 것도 있고 ㅋㅋ

    0
  • 다반향초
    47
    2017-09-06 14:57:16
    좋은글 감사드립니다. 국비를 다녀도 확실히 혼자 해야 하는 부분이 많은거 같습니다~ 국비 웹쪽으로 학습하신건지 궁금합니다. 신상문제상 학원을 추천받을수 없어서 아쉽긴 하네요^^
    0
  • 은하수
    1k
    2017-09-28 23:43:31

    @다반향초


    답이 늦었습니다. 국비는 웹쪽으로 학습했습니다.

    학원은 제가 유명하다는 곳 다니는 친구 얘기도 들어봤으나 학원자체보단 선생님 가르치는 능력이 가장 중요하며, 제일 중요한 건 본인이 혼자 공부하는 겁니다.

    0
  • 또삼이
    93
    2017-09-29 11:57:05

    좋은글 감사합니다

    0
  • 은하수
    1k
    2017-10-12 19:49:56

    @또삼이


    도움이 된다면 영광입니다

    0
  • 땅콩버터
    826
    2017-11-17 10:54:01

    회사에 입사한 지금 봐도 많이 느끼게 되는 글이네요

    좋은 글 감사합니다~

    0
  • jys
    72
    2017-12-14 22:30:23

    1.네트워크 2.운영체제 공부해보려고 하는데

    글쓴이님이나 그 외에도 책좀 추천해주실 수 있을까요?

    특히 네트워크를 하고싶어서 검색해봤는데 C언어 네트워크 프로그래밍 이런거 나오더라구요..

    제가 영어는 약해서 영어책이나 영어강의는 못듣습니다

    부탁드립니다

    0
  • 은하수
    1k
    2017-12-20 21:24:18

    @땅콩버터 

    도움이 되셨다니 기쁩니다


    @jys

    죄송합니다 현재 외국 거주 중이기도 하고, 공부할 때 억지로라도 외국어 책으로 하곤 해서 한국 책은 잘 모릅니다. 다만 글에도 썼다시피 네트워크를 공부한다면 아파치든 nginx든 웹서버를 하나 잡고 파면서 공부를 하는 것을 강력히 추천드립니다. 저 같은 경우는 apache나 nginx 개설서를 잡고 공부하면서 모르는 네트워크 단어 등을 그때그때 웹상에서 검색해가면서 퍼즐 맞춰가는 공부하는 방식으로 했었습니다.

    0
  • 대추접속중
    16
    2018-01-08 00:48:52

    아직 이게시판 댓글을 보실지는 모르지만 혹시나해서 글 남겨봅니다.

    혹시 cisco를 공부한게 나중에 취업할때 도움이 많이되나요??

    제가 다니는 학교에서 cisco를 가르치는데 나중에 좀 더 깊게 배울수도 있고 아니면 다른과목을 좀 더 깊게 배울수가 있다고 해서 나중에 어떤것을 선택하는게 유리한지 궁금합니다...

    혹시 은하수님 생각에 cisco를 아는것이 중요하다고 생각하시는 지요?

    바쁘시겠지만 답변 간절하게 부탁드리겠습니다. 감사합니다.

    0
  • 은하수
    1k
    2018-01-08 21:28:47

    @대추접속중

    안녕하세요. 아직 알림이 있으면 확인하고 있습니다.

    CISCO가 뭔지 잘 몰라서 검색해보니 소프트웨어더군요.

    제가 견식이 넓은 것도 아니고 함부로 기다 아니다 판단내리긴 어려울 것 같습니다 ㅎㅎ

    알아서 나쁠 건 없겠죠.

    다만 소프트웨어 다루는 기술보단 리눅스나 네트워크와 같은 인프라 지식에 대한 해박함이

    취업에나 경력에나 더 도움이 될 것이라고 사료됩니다.

    새해복 많이 받으세요.

    0
  • 대추접속중
    16
    2018-01-09 02:03:52

    정말 친절하고 빠른답변 대단히 감사합니다.

    확실히 리눅스랑 네트워크가 중요한가 보군요 ㅎㅎ

    은하수님도 새해복 많이 받으시고 건강하고 성공적인 한해 되시길 바라겠습니다!


    0
  • 은하수
    1k
    2018-01-10 23:28:52

    @대추접속중

    아직 경력짧은 개인의 의견에 불과하니 적당히 걸러들으시면 됩니다 ㅎㅎ

    대추님께서도 건승하세요!

    0
  • gudrb8998
    2
    2018-02-23 14:54:01

    안녕하세요!! 저도 비전공자로 국비 학원에서 교육을 받은 후 많은 부족함을 느껴서 더 공부하려는 학생입니다. 네트워크에 대해서 어떻게 공부해야할지 감이 안잡히네요 ㅠㅠ 혹시 http://book.naver.com/bookdb/book_detail.nhn?bid=9252940 이와같은 목차를 가진 책으로 공부하면 될까요?? 조언 부탁드립니다!!

    0
  • 은하수
    1k
    2018-02-28 20:17:42

    @gudrb8998

    안녕하세요. 저 책이라면 저도 읽어봤습니다만 알찬 책이었습니다. 다만 처음엔 다소 버거울 수가 있을 듯도 싶습니다.읽으면서 이해못하는 건 검색하고 인터넷 도움 받아가면서 공부하면 되실 듯합니다. 저 책은 네트워크 내용과 컴퓨터 사이언스의 기초적 내용을 동시에 다루고 있는만큼 분명 도움 되시리라 생각합니다. 다만 첫 술에 모든 걸 이해하려하기보단 큰 그림부터 그린다는 느낌으로 함 훑고, 그다음 천천히 하나하나 제대로 이해해 나가는 식으로 공부하시면 좋을 듯합니다.파이팅!

    0
  • 대추접속중
    16
    2018-03-10 03:00:57
    안녕하세요! 주기적으로 질문 드리는거 같아서 정말 죄송합니다. 혹시 취업하실려고 따로 자격증을 따신게 있으셨는지요? 그리고 혹시 취업에 상당히 도움이 될만한 자격증을 아시면 추천해 주실수 있을까요? 바쁘신 분에게 계속 질문드려서 정말 죄송합니다.
    0
  • 은하수
    1k
    2018-03-12 12:41:39

    @대추접속중

    괘념치 마셔요. 괜찮습니다. 취업위해서 딴 자격증은 정보처리기사 외에 없습니다. 개발자로서 무언가 도움이 되는 자격증이 있다면 영어 능력이 아닐까 싶지만, 개발을 잘 못하는데 영어 잘 해도 소용 없는 노릇이니, 자격증보단 오픈소스 활동, 포트폴리오 작성 등이 훨씬 큰 어필이 되지 않을까 생각해봅니다.

    굳이 개발자격증을 하나 추천해드리자면 개인적으론 LPIC같은 자격증을 덤프가 아니라 공부를 제대로 하고 본다면 큰 도움되리라 생각합니다.

    0
  • 대추접속중
    16
    2018-03-12 21:42:25
    바쁘신 와중에 항상 친절하게 답변달아 주셔서 대단히 감사드립니다^^ 은하수님에게 항상 도움만 받아서 죄송할 따름입니다...건강하시고 앞으로 하시는 모든 일 잘 되시길 바라겠습니다!
    0
  • 은하수
    1k
    2018-03-13 17:11:58

    @대추접속중

    바쁜 사람 아닙니다 ㅎㅎ 죄송하게 생각마시구요. 대추님도 건승하시기를

    0
  • Steiner
    2
    2018-03-14 08:45:32 작성 2018-03-15 10:58:11 수정됨

    안녕하세요. 은하수님이 쓰신 위에 글 정말 큰 도움 되었습니다.저는 비전공자 졸업생이고 인문계열 전공입니다. 영어실력은 나쁘지 않습니다. 최근 코딩에 관심이 생겨 생활코딩 인터넷 강의를 듣던 중 관련 국비교육과정을 알아봤습니다. (풀타임으로요.) 그런데 원서를 넣은 기업에 취업이 되었습니다. 물론 직무는 개발과 관련없는 직무입니다만... it쪽 회사이긴 합니다. 괜찮은 회사이다 보니 고민이 됩니다. (회사를 아직 안 다녀봐서 실제로는 모릅니다.) 개발 쪽 적성도 잘 모르겠지만 현재는 재밌습니다. 

    (취업하기도 어려운 시대이니) 우선 회사가서 일하면서 스터디 병행하며 (개인프로젝트를 진행한다던지) 독학할 수 있을까요? 아니면 국비교육과정을 다니고, 아예 개발쪽 일자리를 알아보는 게 좋을까요? 조언 부탁드립니다. 감사합니다.

    0
  • 은하수
    1k
    2018-03-14 23:42:07

    @Steiner

    도움이 되셨다니 기쁩니다. 상황에 따라 사람에 따라 다를 순 있다고 봅니다. 나이가 이미 많으시다거나(30이상) 다시 취업시장에 뛰어들기 두려우시다거나 꼭 개발이 아니어도 된다 싶으시면 입사를 하시는 거고, 아직 어리시고 개발을 해보고 싶고 뭐 그렇다면 다시 한 번 도전해보는 게 아닐까 싶네요. 다만 분명한 건 국비를 통해서 좋은 it 기업 개발자로 입사하는 건 상당히 어려우니 각오하셔야 할 듯 싶습니다. 결국 본인이 얼마나 개발을 하고 싶은지..에 달린 것 같네요 ㅎㅎ 

    0
  • 촌띄기
    12
    2018-04-23 19:21:21

    학원다니면서 정처기 공부중인데..
    학원다니기 전부터 즐찾해놓고 보고있습니다 뭘 어떻게 해나가야할지ㅎㅎ

    꾸준히 업데이트 해주셔서 더 감사한 글이자 조언인것 같아요 감사합니다~

    0
  • 은하수
    1k
    2018-04-28 17:38:22

    @촌띄기

    부족한 글이지만 도움이 되셨다니 기쁩니다! 정처기 어려워졌다고 들었는데 한 방에 합격하시길!

    0
  • 대추접속중
    16
    2018-05-19 17:18:11

    우연히 한번 더 글을 읽어 보고자 들어왔는데 다시한번 업데이트를 해놓으셨네요.

    항상 좋은정보 주셔서 대단히 감사합니다.

    항상 하시는 일 잘되시길 바라겠습니다:)

    0
  • 은하수
    1k
    2018-06-04 04:33:32

    @대추접속중

    별말씀을요. 건승하셨으면 합니다.

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.