목록개발 기타 (20)
취미가 좋다

관계형 데이터베이스 관리 시스템(RDBMS) 중 4가지를 살펴보자. MySQL SQL 문법 기반 거의 모든 운영체제에서 사용 가능 MySQL 데이터베이스는 무료 처리 속도가 빠르고 대용량 데이터 처리에 용이 설치 방법과 사용법이 쉬움 보안성이 우수 구글, 링크드인, 아마존, 넷플릭스, 트위터 등에서 사용 Oracle 오라클 회사에서 만든 데이터베이스 세계 점유율 1위 대부분의 운영체제를 지원 분산처리를 통해 효율성 증대 DBMS 실행 컴퓨터 / 서버 역할 컴퓨터 / DB응용 프로그램 실행 컴퓨터를 다르게 분산처리 대규모 데이터베이스와 영역 관리 고가의 HW를 효율적으로 활용할 수 있도록 영역 사용을 완벽하게 제어 다중 동시 데이터 베이스 사용자 지원 여러 사용자가 동일한 데이터에서 작동하는 다양한 데이터..

SQL 인젝션이란? 데이터 베이스와 연동된 웹 어플리케이션에서 공격자가 입력이 가능한 폼에 조작된 질의문을 삽입하여 웹 서비스의 데이터베이스 정보를 열람 또는 조작할 수 있는 취약점 풀어서 설명하자면, 사용자가 게시글을 올리거나 아이디와 비밀번호를 입력할 수 있는 환경이 있다. 그러한 웹 서버는 데이터 베이스와 연결되어 있다. 그곳에 공격자가 SQL문을 사용하여 원하는 데이터를 얻거나 삭제하는 공격이 가능하다. 이러한 공격을 SQL 인젝션이라고 한다. 아래와 같이 게시글에 글을 작성하면 SQL 문이 생성되는데 이를 활용한 공격이다. Character Escaping 이라는 방법으로 이를 방지할 수 있다. 프레임워크나 라이브러리는 이런 기능을 자동으로 제공한다. 또는 Parameter Binding이나 받..

Cloud Computing 분류 2가지 분류 기준으로 Cloud Computing을 분류해본다. Service Model 로 분류 On Premise 클라우드 컴퓨팅 서비스는 아니지만, 모든 것을 사용자가 관리하는 것을 의미한다. 회사 내에서 필요한 하드웨어를 모두 사고, 환경을 구축하고 프로그램을 설치하고 어플리케이션을 개발하는 모든 것을 직접 해야한다. IaaS (Infrastructure as a Service) IT 기본 자원만 제공받는다. (Server, Stroage, Network) 새로 컴퓨터를 하나 구매하는 개념이다. 컴퓨터에 OS설치부터 이후 작업을 수행하면 된다. AWS EC2가 여기에 속한다. PaaS (Platform as a Service) OS, Middleware, Runt..

Swagger 란? Swagger는 대표적인 API 관리 도구이다. 특정한 프로그램에 존재하는 API의 기능을 명세하고, API의 기능을 바로 테스트할 수 있도록 도와주는 도구이다. 모든 개발자는 이러한 API 관리 도구에 대해 알아야 한다. 팀 단위로 개발을 진행하고 다양한 개발자(서버와 클라이언트) 개발을 할 때 필수적이다. 기본적으로 REST API를 채택하고, 서비스를 마이크로하게 개발하는 구조와 잘 어울린다. 스웨거는 yaml 형식을 지원한다. API 명세서에는 API를 어떻게 이용하는지, 어떤 파라미터를 담아서 전송하면 되는지 등이 문서형태로 작성되어 있다. Swagger Hub 스웨거 허브를 통해 스웨거 기능을 제공하고 있다. API 명세서를 작성하는 것은 귀찮은 작업이지만, 스웨거 허브에서..

1. Multi-Process 프로세스 : 프로그램이 실행된 것 프로그램이 프로세스가 되면서 일어나는 일 1) 프로세스 동작에 필요한 정보들이 메모리에 올라간다. 2) 해당 프로세스에 대한 정보를 담고 있는 PCB 블럭이 만들어진다. 다수의 프로세스를 동시에 실행시키기 위해, 짧은 텀을 반복하면서 전환해서 실행한다. 이를 context switching이라고 하고, 이 방식으로 Multi-process가 가능해진다. 2. Multi-thread 하지만 context switching은 cost가 많이 들고, 이를 절약하기 위한 또다른 방식이 Thread를 사용하는 방식이다. 스레드는 경량화된 프로세스라고 볼 수 있다. 하나의 프로세스 안에 여러 스레드가 있을 때, stack을 제외한 code, data,..

우리의 컴퓨터는 언젠가 고장날 수 있고, 그 안의 데이터는 분명 손실될 수 있다. 그 위험으로부터 벗어나기 위해, 멀리 떨어진 다른 컴퓨터에 저장하는 것이 백업이다. 다른 컴퓨터의 백업 서버에 원격으로 데이터를 저장하고 불러오는 작업을 하려고 한다. git hosting은 우리가 작업하는 로컬 저장소에 버전을 업로드할 원격 저장소를 임대해주는 서비스이다. 이를 이용하여 쉽고 간편하게 백업 서버인 원격 저장소를 이용할 수 있고, 여러 컴퓨터에서도 같은 작업을 할 수 있고 여러 명과도 쉽게 작업할 수 있다. 대표적인 git hosting에는 github, gitlab이 있다. GitHub: Where the world builds software GitHub is where over 56 million de..