그러게...
열심히 JSP 관련된 문서를 찾아보다가 JSP(자바 서버 페이지)는 컴파일 되어 코드를 숨길 수 있어 보안에 매우 우수하다.
라는 내용의 글을 보았다. 아니; 왜 컴파일 되면 보안이 우수한거지..?
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/012.gif)
알고보면 너무 당연할 수 도있지만 일단 나는 뭔소리인지 이해를 못했기 때문에 열심히
찾아보기 전에 생각을 해보았을때 컴파일이 무엇인가..
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/009.gif)
과거 선조들이 개발하던 시절에는 각각 기계(플랫폼)에 따라 서로 다르게 프로그램을 개발 해야했다. 이 과정을 매우 불편하게 여겨 플랫폼에 종속적이지 않는 고오오급 언어를 개발해 냈으니... 두둥!!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
그것은 JAVA였다. 개발자는 JAVA언어로 프로그램을 개발하기만 하면 킹짱 자바 버츄어 머쉰~이 각각의 플랫폼에 맞는 어셈블리 언어로 바꾸어주었다. 이 킹짱 자바 버츄어 머쉰~이 하는 소스코드를 기계어로 번역하는 과정을 바로 컴파일이라 부른다. (와 개쩐당~)
그렇다면 컴파일된 코드는 왜 보안성이 우수한가
일단 집 컴퓨터에 있는 아무 프로젝트나 켰다. (집에 안쓰는 프로젝트 하나쯤은 다 있지!)
프로젝트에 다 대고 우글릭 후 맨밑에 프로퍼티스(Properties)를 클릭한다.
빨간 동그라미 친 곳을 눌러 프로젝트 폴더에 들어간다.
*.class 를 검색한다
집에 있는 아무 프로젝트의 class파일을 열어본다.
<title>태그같은 html 태그들은 뭐가 있는지 잘 보인다.
스크립트 태그에 있는 자바스크립트도 어느정도는 형태가 보인다.
그러나 <% %>로 감싸져있는 JSP는 16진수로 컴파일 되어있었다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/021.gif)
허걱쓰 ~
컴파일 안에는 최적화가 있어서 내가 주석처리한 부분이 없어지고 변수명이 없어지고 함수명이 없어지고 코드의 순서가 컴퓨터가 알기 쉽게 바뀐다고 한다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/023.gif)
그래서 복원해도 보기가 힘들다고...
근데 그냥 단순히 함수명하고 변수명만 안보인다고 해서 이게 마음만 먹고 읽으면 읽을 수 있지 않은가? 라고 생각했는데... (실제로 그러한 역할을 해주는 디컴파일러도 존재하더라...)
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/016.gif)
BUT 보안 프로그램을 돌리면 진짜 모른다고 하더라...
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
결론 :
그냥 컴파일하면 16진수 파일로 되있어서 보기 힘들다.
실제 배포할땐 컴파일된 파일에 보안처리를 해주기 때문에 읽을 수가 없다.
컴파일된 파일은 보안성이 좋다
'카테고리' 카테고리의 다른 글
대학생에게 추천하는 백엔드 선택 가이드 (0) | 2021.07.19 |
---|---|
코드 리뷰 (0) | 2021.07.17 |
세상에서 제일 쉬운 이클립스 설치 A to Z (2) | 2021.07.08 |