![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cjvLwO/btqPnaSZUXM/jmMLQM7TFex1VxfgCbG31k/img.jpg)
Java Java는 1995년에 Sun Microsystems에서 발표한 언어로 점차 인터넷이 발전하면서 다양한 기종의 컴퓨터들과 운영체제들이 나타났고 이러한 플랫폼들로부터 독립적으로 동작하기 위해 고안된 언어입니다. C/C++로 만들어졌으며 C++의 장점을 그대로 흡수하고 단점은 제거한 완전한 객체지향 언어입니다. Java 언어의 특징(C++과 비교해 달라진 점) - C++는 객체를 생성했을 때 delete 키워드를 사용해 제거해야합니다. 만약 프로그래머가 실수로 생성된 객체를 지우지 않을 경우 프로그램이 돌아가면 돌아갈수록 메모리에 불필요한 객체가 점점 쌓이게 됩니다. 따라서 프로그래머가 직접 객체를 지우지 않고 Gargarbage collection을 이용해 알아서 지워지도록 설계했습니다. - 이차..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cOr2d7/btqJvTKoJwG/pk5qdkfqIlL0zqboXwF8e0/img.png)
Apache apache http 서버란 apache 소프트웨어 재단에서 관리하는 서버 프로그램을 말합니다. 따라서 우리가 흔히 부르는 apache는 서버 프로그램에 대해 모호하게 재단을 부르는 것과 마찬가지입니다. 저는 apache 소프트웨어 재단에서 만든 웹서버 httpd를 설치하여 서버 프로그램을 구축해보겠습니다. 이전에 설치한 우분투에는 정말 아무것도 없으니 gcc, g++ 등 모두 설치해줍니다. (apache 소스코드를 컴파일하기 위해 필요합니다.) 소스코드 받기 전 필요한 것들 gcc : apt install gcc g++ : apt install g++ make: apt-get install make pcre & pcre-dev: 정규표현식 PCRE & pcre-dev pcre-dev는 패키..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/3n5QG/btqJs5j3BMg/A34Ub9K0noAxbLYAqleKDK/img.png)
서버 구축 전에.. 서버를 구축하기 앞서 서버를 구축할 운영환경을 설정하겠습니다. 보통 서버를 구축하는데에 사용하는 운영체제는 linux 계열의 운영체제입니다. 리눅스를 활용하는 이유는 바로 무료 오픈소스라는 점에 있습니다. 또한 여러 서버 구축에 관련된 도구들을 패키지 매니저를 활용해 손쉽게 설치할 수 있습니다. 물론 서버를 운영하기위해 윈도우를 사용하려면 할 순 있겠지만 굳이 비싼 돈 주고 설정하기도 어려운 환경을 설치할 필요는 없습니다. 따라서 저는 무료 OS인 우분투를 활용하여 서버를 구축하겠습니다. 가상머신 우선 리눅스를 설치할 가상머신을 다운받겠습니다. 가상 머신이란 운영체제 위에서 가상으로 돌아가는 운영체제를 설치할 수 있도록 해주는 말 그대로 가상머신입니다. 대표적으로 VirtualBox와..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/qLVEA/btqJsv3AlRw/bncTdbUuKdnwB0Wh9OAB70/img.png)
서버란? 서버(영어: server)는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램(server program) 또는 장치(device)를 의미한다. 출처 - 위키백과 서버란 말 그대로 무언가를 Serve(제공)하는 -er(행위자)를 뜻합니다. 이해를 돕기 위해 아주 재밌는 이야기 하나를 해보겠습니다. 어느 한적한 마을에 놀러가 식당에 들어갔습니다. 저는 무엇을 먹을지 정하기위해 종업원에게 메뉴판을 요청했습니다. 종업원은 메뉴판을 가져다 주었고 저는 한참을 고르다가 마침내 도라지 구이를 주문했습니다. 그러자 종업원은 주방으로 달려가 도라지구이 하나를 주방장에게 요청하고 다시 돌아와 다른 손님들을 받았습니다. 주방에서는 주문을 확인하고 도라지구이를 만들기 위해 스..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bCxh38/btqHQG6jl8h/QCGK7B0H9kcPfy7SSveQYK/img.png)
개요 DevOps DevOps란 개발과 운영을 함께하는 소프트웨어 개발 방법론입니다. 소프트웨어 개발 시에는 개발뿐만 아니라 빌드, 테스트, 배포 등 여러 과정이 필요합니다. 따라서 기존의 회사들은 하나의 서비스를 개발과 운영팀으로 나눠 관리했습니다. 이렇게 하나의 서비스를 개발과 운영으로 나누다보니 의사결정과 소통에서 비효율적인 문제가 발생했습니다. 따라서 개발과 운영을 함께 할 수 있는 방법론인 DevOps가 탄생하였습니다. 하나의 서비스를 개발한 후 운영하다보면 필연적으로 그 서비스는 여러 변경사항이 생깁니다. 과거에는 이 변경된 코드를 적용하기 위해서 모든 개발자가 모여 직접 코드를 병합하였습니다. 최근에는 애플리케이션 배포 주기가 짧아지면서 잦은 코드 병합이 일어나고 이 때마다 여러 개발자가 모..
https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 다익스트라 다익스트라 알고리즘은 그래프에서 간선 비용이 0 또는 양수일 때 그리고 시작 지점이 주어졌을 때 최소 비용 거리를 찾기에 유용한 알고리즘입니다. 원리는 간단합니다. (하지만 까먹습니다.) 1. 현재 노드에서 이동할 수 있는 후보 노드들을 조건을 따져 등록합니다. 2. 후보 노드들 중 비용이 가장 적은 노드로 이동합니다. (따라서 heap queue가 유용합니다) 3..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/VbRlT/btqHNxol2UJ/BnrH6sOPoCD3Gys2OrX6Rk/img.png)
AWS EC2와 RDS 서버 생성과 기본 설정을 마치고 실제 서버에 저의 프로젝트를 배포하겠습니다. 전체적인 순서는 이렇습니다. 1. Github에서 AWS 서버로 코드를 가지고 옵니다. 2. gradle을 이용하여 build하고 jar 파일을 생성합니다. 3. jar파일을 실행합니다. 처음 서버를 실행했을 경우 Git이 설치되어있지않습니다. 따라서 git을 설치하고 github에 올라간 코드의 master branch를 clone하여 가지고 옵니다. clone한 프로젝트 디렉토리에 들어가 ./gradlew test를 실행하여 코드가 제대로 수행하는 지 확인합니다. (현재 EC2 서버에는 gradle이 설치되어있지 않지만 ./gradlew 가 실행됩니다. 이것이 가능한 이유는 프로젝트에 포함된 gradl..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/6MJ8C/btqHhPxV7A2/6kt3FqK01Z8CTZLkXgdRd0/img.png)
이전에 AWS EC2 인스턴스를 생성하고 여러 설정들을 했습니다. 이제 데이터 베이스 서버를 설정할 차례입니다. 데이터 베이스 서버는 AWS 관계형 데이터 베이스 서비스인 RDS를 사용해 구축합니다. 프리티어로 사용할 경우 EC2와 마찬가지로 무료이기 때문에 학습용으로 적합합니다. 1. RDS 생성 콘솔로 로그인하여 검색창에 RDS를 검색하고 클릭하면 다음과 같은 화면이 나옵니다. 화면 아래부분에 있는 데이터베이스 생성을 클릭해주세요. 클릭하고 엔진 옵션을 보면 여러 엔진이 있습니다. 저는 MariaDB를 사용하겠습니다. 무료로 사용하기 위해 프리 티어로 선택해주세요. 아래는 설정란입니다. 식별자는 본인 프로젝트 이름을 써주시고 나머지를 모두 작성하고 기억해주세요. 나중에 디비에 접속 시 필요합니다. 연..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/IblLi/btqG9BGtnOw/UNVuwGbzuXo9eFUFXImwwk/img.png)
내가 만든 서비스를 배포(Deployment)하기 위해서는 항상 가동되고 있는 서버가 필요합니다. 일반적으로 기업들은 물리적인 회사 서버를 가지고 서비스를 외부에 제공하거나 클라우드 서비스를 이용하여 제공합니다. 하지만 저는 집 컴퓨터를 24시간 365일 켜놓고 있을 수는 없고 개인 서버 장비를 살 정도로 부유하지 않으니 클라우드를 통해 배포를 진행해보도록 하겠습니다. 그 중에서 IaaS의 대표적인 예시인 AWS EC2를 사용해보도록 하겠습니다. 1. AWS 회원가입 우선 AWS로 접속하여 계정 생성을 클릭합니다. 메일주소, 암호 계정 이름 등을 입력하고 넘어가면 다음과 같은 화면이 나옵니다. 이 때 계정 유형은 개인으로 선택하고 주소는 영문 주소를 기입합니다. (영문 주소 찾기) 다른 칸도 다 기입해주..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bHqUza/btqG2GMUP0I/PnMKyp8ZOOprdV3XKQBldk/img.png)
클라우드란? 클라우드 서비스란 인터넷을 통해 각종 자원(운영체제, 데이터베이스, 스토리지 .. 등)을 제공해주는 서비스를 말합니다. 예전에는 각자의 물리적인 서버가 존재하고 직접 관리하며 프로젝트를 배포했습니다. 하지만 클라우드 서비스가 발전하면서 많은 기업들이 물리적인 서버를 관리하기 보다는 클라우드로 이전하는 것을 택하고 있습니다. 따라서 저도 클라우드를 이용하여 무중단 배포를 해보겠습니다. 클라우드를 사용하기 전에 클라우드의 몇가지 형태에 대해 알아보겠습니다. (1) Infrastrucure as a Service(IaaS) 서버 운영하기 위해 필요한 자원, IP, 네트워크 등 여러 인프라를 제공해주는 클라우드 서비스입니다. 서버를 운용하기위해서는 물리적인 장비들이 필요한데 이를 미들웨어와 함께 묶..
- Total
- Today
- Yesterday
- stack
- oauth
- AWS
- 선택정렬
- 리액트
- greedy
- 백준
- EC2
- spring boot
- 다익스트라
- 자동화
- 정렬
- 알고스팟
- 병합정렬
- 퀵 소트
- 가상환경
- 스프링 부트
- 삽입정렬
- 라이프 사이클
- ci/cd
- 합병정렬
- react
- 배포
- RDS
- 버블정렬
- CodeDeploy
- Union-FInd
- 서버
- 계수정렬
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |