[UMC 1주차] 서버 이해하기, 서버 구축(bitnami, APM)

유보라·2022년 3월 18일
1

UMC 2기

목록 보기
1/14
post-thumbnail

안녕하세요! 인하대학교 UMC 2기 활동을 시작하게 된 후로 첫 게시글을 작성하게 된 보라입니다!😁

저는 Server - Spring 파트를 선택했고 감사하게도 컴공 선배에서 제공되는 강의를 듣게 되었습니다.

앞으로 UMC 게시글은, 다음과 같은 양식을 지키면서 업로드 할 예정입니다. 잘 부탁드립니다!

  1. 실습 과정
  2. 트러블 슈팅
  3. 키워드
  4. 강의 후기

1. 실습 과정

Part 1. 서버가 무엇인지 알고 환경 구축하기

서버(Server) 이해하기

서버란?

클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

서버의 특징

① 서버 : 클라이언트 = 1 : N
② 서버는 상대적인 개념으로, 역할에 따라 달라질 수 있음

서버 구축하기

비트나미(Bitnami) 설치하기

비트나미는 어플리케이션을 설치할 때 복잡한 과정을 거쳐야하는 경우 필요한 프로그램들을 대신 설치해준다. 나는 윈도우 환경에서 웹 서버를 구축해야하므로 WAPM(Windows/Apache/PHP/Mysql)을 설치했다.

설치를 완료하니 위 화면이 나왔다.

Manage Servers를 누르면 서버들의 상태를 확인할 수 있다. Running, 잘 돌아가고 있는 모습!

여기서 Configure을 누르면 port 번호를 지정할 수 있다.

들어가보니 port 번호가 기본 80으로 설정되어 있었다.

서버가 잘 돌아가고 있는지 확인을 해보자.

주소창에 localhost:80를 쳤더니 비트나미에서 default로 제공해주는 화면이 나온다! 굿굿티비!

이번엔 다른 화면도 띄워보자! 다시 처음으로 돌아가서,

Open Application Folder > apache2 > htdocs 를 들어가준다.

그리고 (우여곡절 끝에) php 파일을 만들어준다.

그 다음 주소창에 localhost:80/phpinfo.php를 쳐주면!

이렇게 화면이 잘 뜨는 걸 볼 수 있다. 굿굿티비!

Virtual Box 설치하기

방금 실습이 로컬 공간에서 이루어진 거라면, 이제는 가상 공간에서 리눅스를 이용하여 실습을 해보겠다.

먼저 Virtual Box를 설치해보자.

강의 영상에는 Virtual Box와 Ubuntu를 설치하는 과정이 나와있지 않아서 이 블로그를 참고했다.

https://ndb796.tistory.com/370

나는 C 드라이브 용량이 꽉차서(대체 왜일까..?) 널널한 D 드라이브에 Virtual Box를 설치했다.

가상 머신에 Ubuntu 설치하기

가상 공간 설치가 끝난 후 바로 'Ubuntu 16.04.6'이라는 이름의 새 가상 머신을 만들어주었다.

강의 영상에서 메모리 공간을 4096MB로 설정하라고 하셨기 때문에 4096MB로 할당해주었다!

이제 여기에 우분투 이미지를 넣어주면 된다.

그런데 내가 우분투 이미지 다운을 우습게 본 것 같다...

까짓꺼 다운로드가 얼마나 걸리겠어라고 생각했던 내가 >멍청티비<였다... 이제 됐겠지! 하고 봤더니...

네???? 3시간요? 저 수업 들어야되는데 수업 끝날 때 같이 끝나겠네요 ㅎ..

여기서 잠깐!!!🤦‍♀️

원래 나는 실습 영상을 보면서 하나씩 하나씩 따라하고 있었다.

비록 설치는 아직 못했지만, 이 엄청난 다운로드 시간을 기다리면서 남은 실습 동영상들을 다 보게 되었고 엄청난 사실을 알게 되었다...!

강의 영상에 Virtual Box와 Ubuntu를 설치하는 과정이 나와있지 않은 이유!

그거슨 바로... 이것이 Challenge 과제였기 때문..!

실습을 따라가기 위해 당연히 설치하고 가는건 줄 알았는데 Challenge 과제였다ㅎㅎ

갑자기 행복해진 보라씨..

방금 수업 하나가 끝나고 돌아왔지만 아직도 설치 중이다 ㅎ;;

진짜 3시간이 지나니까 설치가 끝났다.

내 가상 머신에서 설정 > 저장소 > 광학 드라이브 파란 동그라미 모양 > 추가 > 다운 받은 Ubuntu 선택 해준다.

그러면 이렇게 이미지가 적용이 된 모습!

이미지는 잘 적용했지만, 아직 내 가상 머신의 하드 디스크에는 Ubuntu가 설치 되지 않았다.

이미지를 적용한 후에 시작을 누르면 Ubuntu를 설치하는 작업을 거친다.

그 후 나라, 언어 등을 설정해준다.

근데 내가 봐도 웃기다... 위 사진을 보면... 다음으로 넘어가는 버튼이 있어야 하는데?! 버튼이 갑자기 도망갔다... (이거 트러블 슈팅에 쓸까 말까 고민했는데 난 양심이 있는 사람이니까 그냥 안 썼다 ㅎ)

난 진짜 별 것도 아닌 것들도 구글링 하는 살암이니깐 고민 할 필요 없이 바로 구글링 했다. (좀 멋진걸?)

/#우분투 버튼 안보임

누구보다 빠르게 남들과는 다르게 색 다르ㄱ..가 아니라 해결~!

리눅스에 APM 설치하기

리눅스 APM 설치 과정은 (이미 어느 정도 완료했으나 이어서 쓰다 보니) 글 분량이 너무 길어지는 것을 막기 위해 새로운 글로 포스팅 할 예정이다.

2. 트러블 슈팅

1. php 파일이 안 만들어져!

문제 원인

비트나미 설치를 마친 후, 로컬 환경에서 서버 테스트를 해보려고 했다.

이렇게 그냥 단순하게 메모장을 켜서 코드를 따라치고 알맞은 위치에 php 형태로 저장해주면 되는 것이었는데,

강의에 나온 그대로 따라했지만 자꾸 에러가 떴다..!

아무래도 강의 영상은 MAC 환경이었고 나는 윈도우였기에 뭔가 달랐던 것 같다.

화면을 켜놓고 강의 영상과 비교를 해보니, 내가 만든 파일은 텍스트 형태였고 강의에선 파일의 형태가 php로 나와있었다.

파일 내용도 올바르게 썼고, 파일 형식도 모든 파일로 했고, 인코딩도 UTF-8로 했는데도 안됐다.

해결 방안

파일 이름에 .php를 썼는데 왜 php 파일로 저장 되지 않는지 그 이유를 찾아보았다.

알고 보니 내가 계속 이 경로로 파일을 만들어서 무조건 텍스트 문서로 만들어진 것이었다!

그래서 그냥 메모장을 켜서 똑같이 파일을 작성했고 알맞은 위치에 넣었다.

php 파일로 저장 성공!

2. 비밀번호가 뭐였지..

문제 원인

터미널에 접속하여 $ sudo su 명령어를 사용하려고 했는데 계속 오류가 났다.

root 비밀번호를 설정해주지 않아서 뜨는 에러라고 하는데, root 비밀번호랑 OS 계정 비밀번호가 헷갈려서 실수로 로그아웃을 해버렸다...

그래서 어떻게든 다시 내 Bora 계정으로 접속해야 해서 방안을 찾아보았다.

해결 방안

내가 찾아낸 방법은 두 가지가 있었다.

  1. 우분투 실행 시 Shift 또는 ESC > Ubunut, with Linux generic (recovery mode) 선택 > root Drop to root shell prompt 선택 후

    $ mount -rw -o remount /
    $ passwd root

입력한 뒤 변경할 비밀번호를 입력하여 비밀번호 재설정하는 방법

  1. adduser > 명령어를 이용해서 새로운 계정을 만들어내는 방법

그런데 이건 Bora 계정에 로그인이 되어있어야 하는 방법들이었다...

그래서 이렇게 다 찾아본 후 마지막으로 로그인 시도를 해봤는데...

Caps Lock 키를 켜고 비밀번호를 쳤더니 됐다.......(허무)(맹랭)

참고 자료

https://coding-factory.tistory.com/497
https://psychoria.tistory.com/707

3. 키워드

서버와 클라이언트

서버 : 정보를 제공한다는 의미, 정보를 제공하는 사업자가 사용하는 컴퓨터 or 설치되어 있는 소프트웨어
클아이언트 : 무언가 요청하는 사람, 서비스 및 데이터를 요청하는 쪽

비트나미

어플리케이션을 설치할 때 복잡한 과정을 거쳐야하는 경우 필요한 프로그램들을 대신 설치해주는 라이브러리. 다양한 패키지들이 존재한다.

WAPM

WAMP(Windows/Apache/MySQL/PHP)
즉, 윈도우 환경에서 아파치(Server), MySQL(DB), PHP(서버사이드)와 같은 웹 개발환경
MAC의 경우 MAMP이다.

Apache : 서버
PHP(PHP:Hypertext Preprocessor) : 서버 사이드 스크립트 언어
Mysql : 데이터베이스

localhost

컴퓨터 네트워크에서 사용하는 루프백 호스트명으로, 자신의 컴퓨터를 의미한다.
이때, 루프백이란 자신의 컴퓨터를 스스로 서버로 만들고 그 컴퓨터에서 콜을 보내 응답을 받을 수 있는 것을 말한다. 즉, 네트워크를 구축하지 않아도 네트워크처럼 응답을 보내고 받는 것이 가능한 기능이다.

주소 창에 localhost:8080과 127.0.0.1:8080을 입력했을 때 같은 결과가 나온다.
localhost를 127.0.0.1로 redirect 해놓은 것이다.

비유적으로 localhost:3000은 www.naver.com 같은 것이고,

127.0.0.1:3000은 125.209.222.141 (naver의 ip주소) 같은 것이라고 한다.

OS

OS는 Operating System의 약칭으로, 운영 체제이다.
OS는 시스템 하드웨어를 관리할 뿐만 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 즉, 여러가지 프로그램의 모음이고 이 프로그램을 이용해 다른 프로그램을 실행한다. 운영체제는 하드웨어에 설치된다.

솔직히 아직까지 OS가 뭐다! 무슨 일을 한다! 가 머릿속에 정리되어 있지 않다..
이번 학기에 OS 수업을 듣고 있으므로 따로 공부하여 OS에 관해 게시글 시리즈를 작성할 예정이므로 이렇게 간단히만 정리하고 넘어가겠다!

Linux(Linux is Not Unix)

리눅스는 운영체제 중 하나이다.
유닉스(Unix) 운영체제를 모델로 만들어졌으며 다중 작업, 다중 사용자 시스템으로 설계된 네트워크 운영체제(Network Operation System)이다. 다른 운영체제와는 달리 어느 누구도 리눅스를 소유하지 않는다.

따라서 리눅스의 장점은 무료라는 점, 공개 운영체제라는 점, 인터넷의 모든 기능을 지원한다는 점, 강력한 보안, 강력한 네트워크 구축이 가능하다는 점 등이 있다.

반대로 공개 운영체제이기 때문에 문제점 발생 시 보상받을 수 없다는 점과 숙련된 기술을 요구한다는 점 등의 단점이 있다.

가상머신 - Virtual Box

가상머신이란 하드웨어를 소프트웨어적으로 구현해서 그 위에서 운영체제가 작동하도록 하는 기술이다. 위에서 운영체제는 하드웨어에 설치된다고 하였다. 그럼 하나의 컴퓨터가 여러 개의 OS를 가질 수는 없는 걸까?

하나의 컴퓨터 안에 새로운 하드웨어를 구현하여 다른 OS를 설치하면, Window 환경에서도 Linux를 이용할 수 있다. 즉, 다른 운영체제를 사용해야 하는 경우 가상머신이 필요하다. 독립된 작업 공간이 필요한 경우에도 가상머신을 사용한다.

가상머신이란 쉽게 말해서 컴퓨터 안의 컴퓨터라고 말할 수 있을 것 같다. 그 가상머신을 이용할 수 있게 해주는 프로그램 중 하나가 VirtualBox이다. VirtualBox는 오픈소스이며 무료이기에 많은 사람들이 사용한다.

Ubuntu

우분투는 데비안 GNU/리눅스를 기반으로 만들어졌으며, 고유한 데스크탑 환경을 사용하는 리눅스 배포판이다. 우분투의 특징은 개인용, 데스크탑 환경에 최적화되어 있다는 것이다. 리눅스의 특성을 그대로 물려받았기 때문에 리눅스와 마찬가지로 누구나 무료로 다운받아서 사용할 수 있기에 많이 선택하는 것 같다.

4. 강의 후기

드디어 기대했던 첫 강의를 모두 들었다!

내가 느꼈던 강의의 첫 인상은 이랬다...

'앗 영상이 엄청 많군. 역시 시간 투자를 많이 해야된다고 하신게 사실이었어. 어디 한번 들어볼까?'

하고 첫 번째 강의를 켰는데..! 1분..? 하고 다음 강의들을 막 켰는데...! 앗 길어야 2분...?

너무 편안한 기분이 들었다.. (앞으로도 그럴 지는 모르겠지만요!)

강의를 들으면서 하나씩 따라하니까 어렵지 않게 1주차 과제를 해낼 수 있었다.

강의를 듣기 전에는 트러블 슈팅에 좀 더 어렵고 복잡한 걸 쓰게 될 줄 알았는데 아직 1주차이다 보니, 그냥 사소한 실수나 놓친 부분 같은 걸 쓰게 되어서 (내가 그 어려운 서버를 배우고 있다는 게) 아직 실감은 안 난다.

그리고 마지막으로 느낀 점... 초등학생 때 친구들 중에 컴퓨터에다가 가상 컴퓨터 깔아서 게임 두 개씩 돌리는 애들이 있었는데 걔네가 엄청 대단한 거였다.. 초딩 주제에...

어쨌든 1주차 강의를 잘 마쳤고, 다음 주가 기대된다!(●'◡'●)

profile
인하대학교 컴퓨터공학과 학생입니다😀

0개의 댓글