Study

· Study/Server
Docker hub에서 이미지를 pull해와서 컨테이너를 관리하는 부분까지 해봤다. 이제는 Dockerfile로 직접 내 이미지를 만들어보자 Dockerfile Docker 이미지를 생성하기위한 스크립트 파일로, Dockerfile 작성 후 build하면, 파일의 내용대로 한 명령어씩 실행되어 환경을 갖춘 이미지가 생성된다. Dockerfile만 작성해두면 어느 환경에서든 빌드를 통해 같은 이미지를 생성할 수 있고, 이미지 구축에 어떤 명령어가 실행되었는지도 파악하기 편리하다. tomcat, APM, Spring 등 웹서비스를 띄울 때, Dockerfile의 편리성이 드러난다. docker hub에 배포된 설치 이미지를 받아 내가 작성한 App을 바로 Copy하도록 Dockerfile을 작성만 해두면 빠..
· Study/Server
이전 포스팅에서 간단하게 docker 설치를 마쳤다. 이번에는 이 docker에 환경을 올려보자 docker를 이용하기 위해서 컨테이너와 이미지라는 개념을 살짝 알아두어야 하는데, docker의 동작 방식을 먼저 보자 가상환경을 구축한다는 점에서 docker는 Virtual Machine(VM)과 항상 비교된다. docker는 VM과 달리 Guest OS가 설치되지 않는다. 즉, docker는 Guest OS가 없어 Host OS의 커널(linux)을 공유해, 격리된 공간에서 프로세스가 동작하는 방식이다. 그러므로 VM보다 훨씬 가볍고, 끄고 켜는 동작들도 빠르다. 여기서 격리된 공간에서 동작하는 프로세스가 컨테이너다. 각각 독립적으로 실행돼서 다른 프로세스들에 영향을 주지 않는다. 백그라운드로 돌릴수도..
· Study/Server
CVE 연구를 하다보면 해당 취약점에 취약한 환경을 구성하는 일부터 시작하게된다. 몇번 하다보면 정말 환경 세팅만큼 귀찮은게 없다는 걸 알 수있는데, 이런 환경 구축을 케이크먹듯 간편하게 할 수 있는게 바로 도커(docker)다. 가상머신처럼 독립된 프로세스(컨테이너)를 실행시킬 수 있는 도구 도커의 개념을 간단하게 얘기하자면 이런데, 가상머신을 띄워주는 도구정도로 생각하면 편하다. 컨테이너라는 개념이 보이는데, 이는 다음에 환경 구축할 때 부터 알아보고 우리의 친구, 우분투에서 설치하는 방법을 알아보자 apt로 설치하는 방법과 설치 스크립트를 다운받아 설치하는 방법이 있는데 아무거나 해도 무방하다 1. apt sudo apt update && sudo apt upgrade sudo apt install..
· Study/Python
이번에는 지난번 인사 명령에 이어 명령어를 더 추가하고 Embed에 대해서 알아보도록 하겠다. 새로 만들 명령은 주사위로, 예전 게시판 웹사이트를 보면 댓글로 많이 들어가 있었던 기능이다. @bot.command(aliases=['주사위']) async def roll(ctx, number:int): await ctx.send(f'주사위를 굴려 {random.randint(1,int(number))}이(가) 나왔습니다 (1~{number})') 3줄 남짓의 짧은 코드다. 이번 명령어는 단순히 명령어 하나만 입력받는 것이 아니라 매개변수를 하나 더 받는다 이와 같이 매개변수를 입력받고자 할때는 ctx 뒤에 매개변수 명을 써주자 @bot.command() async def repeat(ctx, *, txt)..
· Study/Python
게임하느라 디스코드를 쓰는 중에 '봇'을 사용하는 친구가 있었다. 명령어를 써서 노래도 틀고, 디스코드 서버 관리도 하는걸 보니 꽤 재미있어 보였다. 마침 파이썬도 배우는 참이라 삘받아서 만들어 보았다. 디스코드 봇을 만드는 언어는 여러종류가 있는데 가장 많이 쓰는 언어로는 크게 2가지가 있다고 한다. Node.js와 파이썬, 이 두가지인데 필자는 Node.js를 아직 다뤄본적이 없으므로 파이썬으로 만들기로 했다. 먼저 디스코드 개발자 페이지로 로그인해서 봇을 만들어줘야 한다. (discord.com/developers/) 로그인해서 들어간 후, Applications에서 New Application Application의 이름을 만들고 생성하면 My Application에 새롭게 추가가 된다 Gener..
· Study/SQL
DDL은 Data Definition Language로 데이터베이스를 정의하는 언어이다. 데이터베이스를 생성 / 수정 / 삭제하는 명령들로 이루어져 있다. 이번에 알아볼 명령어들은 CREATE, ALTER, DROP, TRUNCATE이다. 데이터베이스는 테이블들의 집합으로 이루어져있고, 테이블들은 열과 행이 존재하는 모델로 데이터 값들이 실제로 저장되는 집합체이다. 이번에 볼 DDL의 경우 테이블의 구조를 설정하는 명령어들 이라고 정리할 수 있다. 예시로 학교 데이터베이스를 만들고 학생 정보를 담은 테이블을 만들어 보자 테이블을 만들기 전에 테이블을 담을 데이터베이스를 만들어주자 CREATE DATABASE School; USE School; 만든 School 데이터베이스를 사용하는 설정까지 마친 후, ..
· Study/SQL
MySQL은 관계형 데이터베이스 중 하나로 Oracle, MSSQL 등과 함께 오늘날 가장 많이 쓰이는 DBMS 중 하나이다. 간략한 설치과정을 보며 직접 설치해보자 실습은 VM 가상환경에서 진행했으며, OS 환경은 Ubuntu 18.04 1. 패키지 업데이트 & 업그레이드 $ sudo apt-get update && sudo apt-get upgrade 2. MySQL 설치 $ sudo apt-get install mysql-server 설치 후 sudo 권한을 사용하지 않고 mysql -u root로 접속할려고 시도하면 에러가 발생 3. MySQL 환경 설정 $ sudo mysql -u root 위와 같이 sudo 권한을 이용해 접속 한 후 root 계정의 패스워드 설정을 확인하자 mysql> use..
이번에는 기업 면접 등에서 자주 나오는 주제인 TCP와 UDP에 대해 알아보자 TCP Transmission Control Protocol, 전송을 제어하는 프로토콜로 일반적으로 IP와 함께 사용된다 연결형 서비스로 가상 회선 방식을 제공한다 가상 회선 방식 : 처음 패킷으로 최적의 경로를 고정하고, 경로가 고정되면 그 이후 패킷들은 그 경로로 고속으로 전송하는 기술 흐름 제어와 혼잡 제어 기능을 가진다 따라서, UDP에 비해 속도가 느리다 전송한 데이터의 순서를 보장한다 따라서, UDP에 비해 높은 신뢰성을 가진다 TCP는 신뢰성 있는 연결형 서비스이므로 신뢰성이 필요한 메일 / 파일 전송, HTTP 등에서 이용된다 UDP User Datagram Protocol, 데이터를 데이터그램 단위로 처리하는 ..
Omoknooni
'Study' 카테고리의 글 목록 (4 Page)