리눅스
리눅스는 unix기반의 운영체제로 높은 안정성, 보안성, 신뢰성 및 성능을 가진다. 시스템의 자원을 사용자가 효율적으로 관리하고 사용할 수 있고 여러 사용자가 동시에 한 시스템에 접근할 수 있고 한 사용자마다 여러 개의 작업을 동시에 사용해 컴퓨터의 자원을 활용할 수 있다.
리눅스에는 정말 다양한 배포판 운영체제가 있다.
이 중에서 나는 가장 보편적으로 사용하는 우분투 운영체제를 기반으로 공부했다.
대부분의 운영체제가 그러하듯이 우분투 운영체제에도 크게 두 가지 버전이 존재한다.
바로 GUI, CLI 버전이다.
GUI버전은 Graphical User Interface의 약자로 windows나 mac 운영체제에서 기본적으로 사용하는 방식인데, 사용자가 편리하게 시스템을 이용할 수 있도록 프로그램이나 파일, 폴더등을 아이콘 또는 그래픽으로 표현한 인터페이스 방식이다.
일반적으로 마우스 클릭이나 drag&drop이 가능하다.
CLI버전은 Command Line Interface의 약자로 command line으로 사용자가 컴퓨터에게 명령을 내리는 방식이다. 단순히 command line을 입력하면서 수행해야하기 때문에 초기에는 어려울 수 있지만 GUI보다 자원의 효율성도 있으며 Server 컴퓨터에서는 많이 사용된다.
Sudo
우분투에서 어떤 명령어를 입력할 때 그 명령어가 실행되기 위해서는 권한이 필요하다. 낮은 권한이 필요할 수도 있고 높은 권한이 필요할 수도 있는데 일반적으로 높은 권한이 필요한 명령에 대해서는 명령어 앞에 'sudo'를 붙여 가장 높은 권한을 부여하며 실행하도록 한다.
Linux 명령어
- pwd → 현재 어느 디렉토리 경로에 있는지 알려준다.
- cd [디렉토리명] → 현재 위치를 [디렉토리명]으로 이동한다. '..'은 상위 디렉토리 '.'는 현재 디렉토리, '/'만 앞에 붙으면 절대 경로로 인식한다.
- ls → 현재 디렉토리에서 존재하는 파일 또는 폴더에 대한 정보를 목록으로 보여준다. (option: -l{세로로 일부 정보와 함께 표시}, -al(모든 정보를 세로로 출력, 줄여서 ll로도 가능))
- mv [원본이름] [대상이름] → [원본이름] 파일을 [대상이름] 파일로 변경 (다른 디렉토리라면 이동, 같은 디렉토리 상이라면 이름변경!)
- cp [원본이름] [대상이름] → [원본이름] 파일을 [대상이름] 파일로 복사. 옵션 -r을 사용하면 디렉토리를 복사할 수 있다.
- rm [파일또는디렉토리명] → 파일 또는 디렉토리를 제거한다. (-rf 옵션을 사용하여 내부에 파일이 들어있는 디렉토리도 강제로 삭제할 수 있다.)
- mkdir [디렉토리명] → 새로운 디렉토리를 생성한다.
- cat [파일이름] → 간단한 파일에 대해서 실행창에 stdout실행
- less [파일이름] → 파일을 열어보는 기능, cat과 다르게 다른 창에서 열어볼 수 있다.
- touch [파일이름] → 파일 생성
특수 기호
* (별)
별은 모든 파일을 지칭하는 특수기호로 사용된다. 예를 들어, cp /home/kk/* /home 은 /home/kk 디렉토리에 존재하는 모든 파일을 /home 디렉토리로 복사하라는 뜻이다.
*(별)은 모든 확장자를 지칭할 때도 사용될 수 있다. (1.jpg, 2.jpg, 3.jpg → *.jpg | 1.txt, 2.jpg, 3.jpeg → *.*)
더불어 *이 파일명 앞뒤에 붙어 파일명으로 시작하거나 끝나는 모든파일을 지정할 수도 있다. (abcd, abdt, abth → ab*)
?(물음표)
위에서 *이 파일명 앞뒤에 붙을 수 있다고 한것과 비슷하게 ?도 파일의 앞뒤에 붙어 사용된다. 하지만 단일 문자에 대해서만 적용된다.
예를 들어, cp test? /home 이라면 test1, test2, test3과 같은 파일명을 가진 파일들에 대해서 home 디렉토리로 복사하라는 뜻이다. 다만 단일문자에 대해서만 ?가 대응하므로 test11, test3354 같은 파일명에 대해서는 지정되지 않는다.
WEB의 구조
WEB은 크게 client와 server라는 객체가 서로 정보를 주고 받으면서 구성된다.
이 때 server는 client에게 정보를 제공하기 위해 특정한 구조로 client로부터 query를 받는다.
2 Tier
2 tier방식은 server를 가지고 있는 컴퓨터에서 DB도 같이 갖고 있는 방식이다. 같은 컴퓨터에 있기 때문에 빠른 서버와 DB간의 통신이 장점이다. 때문에 클라이언트에 응답도 빠르게 줄 수 있다.
하지만 DB가 같은 컴퓨터에 존재하기 때문에 확장성에서 좋지 않고 자원을 비효율적으로 처리할 가능성이 높다. ▶ 관리가 어렵다.
3 Tier
2 Tier와 다르게 3 Tier 방식은 서버와 DB가 다른 컴퓨터에 존재한다. 서버 컴퓨터에서 DB를 관리하지 않고 DB 컴퓨터에서 따로 관리하기 때문에 자원의 활용이 우수하며 보안성에도 취약하지 않다. (클라이언트가 DB에 직접 접근할 수 없기 때문)
WAS (Web Application Server)
WAS는 일반적인 Web Server와는 조금 다른 개념이다. 일반적인 Web Server는 클라이언트로부터 정보를 요청받으면 정적인 결과물만 반환해주고 항상 똑같은 결과만을 반환하는데 WAS는 다양한 로직 처리를 통해 동적인 결과물을 반환할 수 있다. WAS에서 동적인 결과물을 만들어내기위해 클라이언트의 정보를 받아 애플리케이션을 수행하는 기능을 미들웨어(middleware)라고 하고 이는 WAS와 동치되는 개념이라고 볼 수 있다. (WAS를 웹 컨테이너, 서블릿 컨테이너라고도 부른다.)
엄밀히 말하면 WAS는 Web Server와 Web Container가 혼합된 구조이다. 하지만 어떤 컨텐츠를 client에게 반환해줄지에 따라서 구분지어서 지칭하는 구조가 되기도 한다.
WAS와 Web Server
WAS는 동적인 컨텐츠를 application으로 처리하여 반환하고 Web server는 주로 정적인 컨텐츠를 반환한다. 만약 정적인 컨텐츠까지 WAS가 모두 처리하는 구조라면 WAS는 너무 많은 부하가 걸려 쉽게 처리할 수 있는 정적인 컨텐츠도 잘 반환하지 못하게 될 것이다. 또 WAS가 없이 Web server만 존재한다면 동적인 컨텐츠를 만드는 기능이 없어 동적인 컨텐츠를 반환해줄 수 없다.
이런 이유들 때문에 WAS와 Web Server를 구분하여 기능적으로 같이 사용하는 방식이 대두된다. WAS에서는 동적인 컨텐츠를, Web Server에서는 정적인 컨텐츠를 반환하도록 업무를 분산하여 부하를 줄이고 빠르게 처리할 수 있게 되었다.
Reference
https://khero97.tistory.com/48
[기초 명령어] 우분투 리눅스 입문편 - 리눅스의 신 (1)
1. 간단한 콘솔(터미널) 명령어 pwd 현재 어느 디렉토리에 있는지 알려줌 cd [디렉토리명] 다른 디렉토리로 이동, '..'은 상위 디렉토리로 이동을 의미함 ls 현재 디렉토리에 있는 파일과 하위 디렉
khero97.tistory.com
https://velog.io/@soryeongk/LinuxBasic
[Linux] 리눅스 기본 정리
컴퓨터 역사상 가장 많은 참여자가 관여하고 있는 오픈소스 리눅스에 대한 기본 정리입니다.
velog.io
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'네트워크 및 클라우드' 카테고리의 다른 글
TCP/IP로 배우는 네트워크 1 (0) | 2023.01.19 |
---|---|
[Kubernetes] Kubernetes 구조 및 기능 (0) | 2022.11.06 |
[가상화 클라우드] AWS (EC2, S3, EBS) (0) | 2022.11.03 |
[WAS 기초]3 Tier 구현 실습 (포트 포워딩, NAT Network, etc..) (0) | 2022.11.02 |