본문 바로가기
Web Hacking

[Web Hacking] 웹의 작동 원리와 개발 방식

by spareone 2026. 1. 30.

웹 해킹을 공부하기 위해선 먼저 웹의 작동 원리를 알아야 합니다.

직접 웹 애플리케이션 개발을 해 보는 것이 좋으며, CRUD 게시판을 만들고 코드를 리딩할 수 있는 정도면 됩니다.

시간 절약을 위해 게시판 개발은 AI의 도움을 받아도 되지만, 게시판 코드를 읽고 이해할 수 있어야 합니다.

 


 

웹 애플리케이션은 아래와 같은 방식으로 작동합니다.

 

[그림 1] 웹 작동 방식 구상도

 

 

1. 클라이언트는 도메인(test.com)으로 서버에 자원 요청

2. 도메인을 IP로 변환한 뒤, 라우터와 보안 장비를 거쳐 웹 서버에 도달

3. 로직 처리를 위해 WAS에게 요청 전달

4. WAS는 데이터 처리를 위해 DB 쿼리 전달

5. DB에서 쿼리 수행 후 WAS에 결과 응답

6. WAS에서 로직 처리 후 Web Server에 결과 응답

7. 다시 보안장비/라우터를 거쳐 사용자에게 응답

8. 사용자는 최종적으로 자원 수신 (웹브라우저 등)

 


웹 서버는 개발 방식에 따라 Model 1, Model 2(MVC)로 구분됩니다.

 

1. Model 1

 

Model1의 큰 특징은 라우팅 없이 페이지에 접근할 수 있습니다.

 

Apache나 Nginx 등의 웹 서버를 구동할 때 루트 디렉터리는 보통 /var/www/html/ 로 지정됩니다.

 

[그림 2] ROOT 경로

 

[그림 2]처럼 루트 경로에 넣은 파일 그대로 URL 엔드포인트가 됩니다. 따로 라우팅을 하지 않으니 간편하게 URL을 구성할 수 있습니다.

 

2. Model 2 (MVC)

 

MVC는 Model - View - Controller의 약자로, 모델(데이터/로직 등), 뷰(사용자가 보는 화면), 컨트롤러 (모델과 뷰 연결) 이 3개를 따로 구현하는 것을 말합니다.

이로 인해 개발자는 각각의 기능을 개발하기 편해지는 장점이 있습니다.

 

[그림 3] Python Flask의 Route

 

개발자는 URL 엔드포인트를 직접 라우팅 해 주어야 해당 페이지에 접근이 가능합니다.

[그림 3]은 Python의 Flask에서 라우팅을 하는 예시 코드이며, /board/free에 접속할 시 해당 페이지를 return하는 코드입니다.

 

엔드포인트를 직접 작성하기 때문에 보안 측면에서는 더 안전하다고 볼 수 있습니다.

다만 기존에 Model 1으로 개발되었던 웹 애플리케이션을 MVC 패턴으로 바꾸는 것이 쉽지 않기 때문에 일부 기관에서는 '차세대 프로젝트'라는 이름으로 변경하려는 시도를 하고 있습니다.

 


 

대한민국은 어떤 기술로 웹 애플리케이션을 개발할까요?

흔히 한국은 자바 공화국이라고 이야기합니다. 실제로 이 말이 맞습니다.

[그림 4] 매일경제 “오픈서베이 개발자 트렌드리포트 2021" 개발언어 순위

2021년 개발 언어 순위에서 JAVA가 1위를 함을 확인할 수 있습니다.

 

한국이 Java를 많이 쓰게 된 이유는 여러 가지가 있겠지만...

정부에서 제공하는 전자정부프레임워크라는 게 있습니다.

각 기관들은 이 프레임워크로 개발하라고 SI업체에게 하청을 줍니다.

SI업체는 신입이 들어오면 경력 3년이라고 구라치고 바로 실무 투입시킵니다.

 

이렇다 보니 Java로 기술스택이 쌓일 수밖에 없고 SI업체를 나가서도 계속 Java를 쓰게 됩니다.

또한 인수인계가 제대로 되지 않기 때문에 새로운 페이지를 만들어야 할 때 기존 코드를 복붙해서 만드는 경우도 많은데, 이 코드에 들어있는 취약점도 계속 복붙되어 취약점 박멸이 되지 않습니다.

 

저번 react 심각한 취약점 터졌을 때, 한국은 해당사항이 별로 없던 이유가 react 쓴 곳이 별로 없어서라는 말도 있습니다.

 

php도 많이 사용합니다.

특히나 php는 제로보드, 그누보드의 영향이 큽니다.

제로보드 관련 플러그인, 스킨 개발을 위해 php에 입문한 사람들도 많았던 것으로 압니다.

저도 그누보드를 통해 php를 알게 되었고 이걸로 웹 개발을 입문했었습니다.

 

[그림 5] DBMS 순위

DB의 경우 Oracle이 압도적 1등입니다.

무료로 사용할 수 있는 MySQL이나 MariaDB(MySQL에서 분리), PostgreSQL 등의 DBMS가 있지만 굳이 기업에서 Oracle을 쓰는 이유는 유지보수 때문입니다.

Oracle DB의 경우 문제가 생기면 바로 Oracle에 전화합니다. 알아서 처리해줍니다.

반면 오픈소스 DBMS는 유지보수에 문제가 생길 수도 있기 때문에, 안정적인 Oracle을 사용하는 것입니다.

 

'Web Hacking' 카테고리의 다른 글

[Web Hacking] 요청과 응답 (Request, Response)  (0) 2026.01.30

댓글