Back-end 18

[스프링부트/Spring boot] 스프링 입문 2/4 - 정적 컨텐츠

인프런 강의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 스프링 웹 개발 스프링을 이용한 웹 개발은 크게 세 가지로 나뉜다. 정적 컨텐츠 MVC와 템플릿 엔진 API 정적 컨텐츠 HTML 파일을 그대로 웹 브라우저에게 쏴주는 방식이다. 스프링 컨테이너는 스프링 부트 내 injection을 이용하여 객체를 관리하는 컨테이너다. 클라이언트(웹 브라우저)가 요청한 내용과 관련된 Controller가 스프링 컨테이너에 존재하지 않는다면 톰캣 서버는 자체적으로 정적 컨텐츠를 찾아 반환해준다. 그래서 아래 도메인처럼 html 확장자가 따라 붙는다. https://localhost:8080/index.html

[스프링부트/Spring boot] 스프링 입문 1/4 - 환경 설정

인프런 강의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 프로젝트 환경설정 프로젝트 생성 스프링부트 스타터 사이트에서 쉽게 스프링 프로젝트 생성할 수 있다. Project Maven : 설정 파일로 xml 사용, 쓰지 않는 추세 Gradle : Groovy 언어 사용, 훨씬 간결한 코드 Language Java Spring Boot 2.4.1x Project Metadata Group : domain name Artifact : project name Packaging : Jar Java : 11 Dependency 어떤 라이브러리를 가져와 쓸지 라이브러리 기존에 사용하기 어려웠던 스프링이 톰캣 웹 서버를 내장한 스프링 부트가 나오면서 굉장히 개발 친화적으로 변했다...

[서버/Server] Apache VS Nginx 짧고 굵게 비교하기

2주에 걸쳐 서버 프로그램으로 Apache와 Nginx를 설치해서 사용해봤다. 두 가지 프로그램이 전체 웹 서비스의 반 이상을 차지할 정도로 폭넓게 사용된다고 하니 어떤 차이점이 있는지 궁금해졌다. Apache http 웹 서버의 대명사라고 불리는 아파치는 MPM(Multi Processing Module : 다중처리모듈) 방식으로 요청을 처리한다. 스레드/프로세스 기반 구조 스레드/프로세스 기반 구조는 기본적으로 한 개의 스레드가 한 개의 요청만을 처리하는 구조이다. 사용자가 늘어날수록 많은 스레드를 생성해 메모리나 CPU 소모가 증가한다. 대표적으로 prefork와 worker 방식이 있다. Prefork MPM 실행 중인 프로세스를 복제하여 처리하는 방식 각 서버 프로세스는 한 번에 하나의 요청만 ..

[서버/Server] Bitnami로 구축한 서버에 외부 접속하기

Bitnami란 무엇일까? 소프트 스퀘어드 1주차 과제는 Ubuntu 위에 APM을 컴파일 설치해 서버를 구축하는 것이었다. 2주차까지는 반복적으로 서버 구축을 하여 익숙해진다고 들었다. 이번에는 편하게 Bitnami를 이용할 것이다. 위키백과에서 bitnami 를 가상 어플라이언스 및 웹 앱, 개발 스택용 소프트웨어 패키지 및 설치 라이브러리라고 서술한다. 쉽게 말해 복잡한 과정의 어플리케이션 솔루션들을 패키지로 만들어 간단히 설치할 수 있도록 도와주는 프로그램이다. 그 중 웹 서버 구축에 필요한 Bitnami WAMP를 사용할 것이다. WAMP는 Window 환경에 Apache / MySQL / PHP를 한 번에 설치해준다. 설치 및 실행 bitnami 사이트에서 설치 후 localhost 혹은 12..

[서버/Server] APM 컴파일 설치하기 3/3 - PHP

PHP 7.4.1 컴파일 설치 현재 Ubuntu 18.04위에 Apache 2.4.46과 MySQL 8.0.19까지 컴파일 설치했다. PHP 버전 7.4.1 설치를 마지막으로 우분투 위에 패키지 매니저를 사용하지 않고 APM 컴파일 설치를 완료했다. 의존성 패키지 설치 의존성 패키지까지 모두 컴파일 설치 할 수는 없으니 편하게 apt-get 명령어를 사용해준다. $ apt-get install libxml2-dev $ apt-get install libjpeg-dev $ apt-get install libpng-dev php 설치 Apache와 MySQL 설치할 때와 동일하게 tar.gz 파일을 다운 받아 압축 해제한다. $ cd /usr/local/ $ wget https://www.php.net/di..

[서버/Server] APM 컴파일 설치하기 2/3 - MySQL

MySQL 8.0.19 컴파일 설치 Ubuntu 18.04 위에 Apache 2.4.46 설치를 완료했다. (이전 내용) MySQL은 버전 8.0.19 를 컴파일 설치했는데 시간이 정말 많이 걸려서 놀랐다. 심지어 도중에 한 번 우분투 복구까지 진행했다. 스냅샷을 찍어 백업시켜둔 과거의 나한테 고마웠다. 덕분에 apt-get upgrade하는데 굉장히 많은 시간이 걸렸지만… 의존성 패키지 설치 MySQL 공식 문서에 꼭 설치해야 하는 패키지들이 명시되어 있다. apt-get update 후 필요한 패키지들을 설치하면 된다. MySQL Community Server 8.0.19 설치 Apache 설치할 때와 동일하게 tar.gz파일을 다운받아 압축 해제해준다. $ cd /usr/local $ wget ht..