본문 바로가기

PlayTheWeb

Play The Web - 1. 메모장 열어, 코드부터 들어간다.

먼저, 한 동안 블로그에 글을 작성하지 않다가 이 글을 작성하는 이유는 그렇게 큰 이유도 아니고 작은 이유도 아니다.


시스템 해킹 로드맵이라고도 불리는 홍승표님(Ph4nT0m)의 슬라이드는 안 본 사람은 있어도 한번만 본 사람은 없을 것이라 생각한다.


슬라이드를 보면서 느낀 것이 시스템 해킹 뿐 아니라 웹에 입문하고자 하는 사람도 이러한 길잡이 문서가 있으면 좋을텐데.. 하고 생각했었다.


그래서 나도 한번 써보자! 하고 글을 작성해보고자 한다.


평소에 카카오톡 채팅방에 있다보면 보안쪽으로 입문하려는 사람이 많다. 그들의 연령은 중학교 2학년부터 30대까지 다양하다.


입문하고자 하는 사람들의 대표적인 질문이 하나 있다.


"보안을 하려고 하는데 뭐부터 해야 하나요?"


내가 보안 공부를 처음 시작할 때에도 뭐부터 시작해야 하는지 몰랐을때 했었던 질문이다.


솔직히 인터넷에 검색해도 답이 나올 듯한 질문이고, 대부분의 답변은 이렇다.


"C언어, 파이썬부터 시작하세요"


맞는 말이다. 


사람마다 생각이 다 다르겠지만 보안이라는 분야는 피라미드의 최상위 단계에 있는 것이라고 해도 무방하다.


그리고 개발은 보안 분야와 절대 피할 수 없는 분야이기도 하다.


출처 : 위키피디아(https://ko.wikipedia.org/wiki/%22Hello,_World!%22_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8)


그렇다면 이 개발이라는 분야를 어떻게 접근해야 할까?


위 그림처럼 Hello World부터 시작하면 된다. 이 글에서는 웹을 대상으로 하고자 하므로 HTML의 문법부터 익히라고 말하고 싶다.

※ 문법 공부에 대한 내용은 책을 사서 보거나, 생활코딩(https://opentutorials.org/)에서 강의를 보자.

   본 글에서는 문법에 대해 다루지 않는다.


하지만 어떤 사람은 이렇게 말한다.


"개발 안해도 충분히 보안 할 수 있는데요? 모의해킹도 가능합니다."


이것도 맞는 말이다. 모의해킹, 충분히 할 수 있다.


그런데 개발을 해본 사람과 안해본 사람의 차이는 확실히 차이가 난다.


본인도 느낄 것이다. 화이트박스로 소스코드 분석하면서 이게 무슨 함수지, 이건 무슨 변수지 하는 본인의 모습도.... 보일 것이다..


그리고 는 비전공이라 개발도 모르겠고 그냥 보안 하고 싶은데 어떻게 해야 하나요? 라는 질문을 하는 사람도 간간히 있다.


컴퓨터 공학을 전공하거나, 전공하지 않았거나 그런건 아무런 상관이 없다. 솔직히 말하면 제일 꼴뵈기 싫은 질문 중 하나이다.


최근에는 간호사를 하다가 보안을 하겠다고 뛰어드는 사람도 있고 생명공학을 전공하다가 보안을 시작한 사람도 있다.


더군다나 유명한 해커 중에서는 대학을 나오지 않거나 경영학을 전공하기도 했다.


이정도만 해도 본인이 비전공이라고 광고 하는게 얼마나 바보스러웠는지 알 것이다.


그럼 이제 개발을 어떻게 입문하는게 좋을까?


먼저 웹 개발에서는 프론트엔드와 백엔드 이렇게 큰 두 종류의 범위로 나뉜다.(박읍혜와 최읍실)


프론트엔드는 HTML, CSS, Javascript 등으로 이루어진 표현을 담당하는 영역이다.(Vue나 앵귤러 같은 애들이 나오면서 얘네 혼자 다하는 경우도..)


백엔드는 JSP, PHP, ASP, NodeJs, 장고 등 웹 서버와 밀접한 관계가 있고 최근 기술로는 api용으로 주로 쓰인다.(혹은 프레임워크)


보기만 해도 저런 기술들을 다 알아야 되는거야? 하는 사람 분명히 있다.


조급해 할 것 없이 천천히 시작하면 된다. 그리고 목표를 꾸준히 세우자. 그럼 개발이 더욱 재밌어진다.(보안 말고 개발로 전향할 수도 있다. 개이득)


예를 들면, HTML로 줄바꿈, 표만들기 부터 시작해서 CSS를 공부하면서 div 태그의 활용, id 속성, 클래스 속성의 활용으로 내가 만들어본걸 꾸며보기, JavaScript를 공부하면서 내가 만든 버튼을 이용해서 표를 사라졌다가 나타나게 만들기 등.......


개발을 하면서 어떻게 지지고 볶을지 목표를 세우면 힘들다기보단 창작의 즐거움이 된다.


언어는 내가 만들고자 하는 작품을 위한 도구이다. 문법을 공부한다는건 도구를 쓰는 방법을 공부한다는 것이고 그 도구를 이용해 작은 홈페이지같은 작품을 만들거나, 큰 솔루션 같은 집을 건축하는 일이 바로 개발이라고 생각한다.


그럼 여기서 또 질문이 하나 나온다.


"그럼 어떤 언어부터 해요? 언어 추천좀 ㅋ"


답은 너 하고싶은거 해라, 아니면 네이버에 돌림판이나 사다리타기 띄워놓고 JSP, PHP, ASP, 장고 등을 적어놓고 돌려라.


왜 이런 말을 하냐면 JSP와 PHP 이런 언어들은 문법이 조금씩 다르다. 그렇지만 공통적인 부분이 존재한다.


그렇다면 JSP를 빡세게 배워놓으면 PHP나 ASP 등을 접할 때에도 러닝커브가 조금이나마 줄어든다는 이야기가 된다.


일단 고민하지말고 보이는 것부터 공부하자. 어렵다 쉽다를 판가름 하기 전에 프로젝트 하나 쯤 만들고 말하자.


보통 책이나 동영상 강의를 보면 조건문, 반복문, 배열 등등 이런 기초적인 내용을 가르친다.


책을 다 봤다고 해서 그 언어를 마스터 한게 아니다.(도대체 C언어 마스터라는건 어떤새X가 만든 단어인지 모르겠다)


프로젝트를 하나 정하자. 어떤 것이든 좋다. 시중에 나와있는 걸 모방해도 좋고, 자기가 창의력 쑥쑥 씽X빅 박사라면 직접 기획을 해도 좋다.


그리고 본인이 책이나 강의를 통해 배운 내용으로 구현을 시도해 본다. 완성을 했다면 당신은 개발에 입문을 완료한 것이다.


프로젝트는 하나 완성했다고 끝내지 말고, 적어도 3~4개는 만들어 보는것이 좋다. 


마지막으로, 절대 포기하지 말자. 본인의 목표를 한번 정했으면 절대 바꾸지 말자. 아무리 빡세도 내가 목표를 이루고 얻을 성취감을 생각하면 존버하길 잘했다고 느낄 것이다.



마치며..

그냥 생각나는 대로 적느라 의식의 흐름이 느껴지는 부분이 몇군데 있으나 두서없이 썼기 때문에 그렇다고 생각합니다.

대한민국의 수많은 웹린이들이 제 미천한 글을 보고 방향을 잡으셨으면 좋겠고 포기하지말고 공부를 하셨으면 좋겠습니다.

학원에 대한 부분을 작성하려 했으나 일부러 작성하지 않았습니다. 괜히 썼다가 고소미 먹을것같기도 하고 학원을 다니고 안다니고는 본인의 주관이기 때문입니다. 그래도 정 궁금하시면 아래의 주소로 입장하셔서 여쭤봐주세요.


카카오톡 오픈채팅방에서 Play The Web을 검색하시면 제가 운영하는 방이 나오니 주저말고 입장하셔서 정보 공유 해주시면 감사하겠습니다.

https://open.kakao.com/o/gFxhwWV



태그