데이터베이스의 강력한 기능중 하나인 트랜잭션을 이해하고 어느때 사용하면 좋을지, 장점은 뭐고 단점은 어떤것이 있는지 살펴보고, 트랜잭션이 가지는 특징에 대해서 알아보도록 하자 트랜잭션이란? 우선 먼저 트랜잭션의 뜻을 알아보면 ' 하나의 논리적 기능을 수행하기 위한 작업의 단위 ' 라고 설명할수있다 해당 뜻은 우리가 서비스를 진행함에 따라 여러개의 쿼리문이 엮이는 상황을 흔히 볼수있을것이다 당장 예를들어봐도 조회수 100 이상의 게시물을 인기 게시물 테이블로 옮기고싶을때 이런작업을 거칠수있다 게시물 테이블에 조회수 100이상의 게시물을 SELECT 한다 (1) SELECT 한 게시물테이블을 인기 게시물 테이블로 옮기는 INSERT 작업을 한다 (2) 게시물 테이블에 조회수 100이상의 게시물의 삭제상태를 ..
우리가 웹에서 요청과 응답에서 사용하는 프로토콜은 HTTP 프로토콜위에서 작동한다 Header에는 상태코드와 함께 HTTP 버전, 컨텐츠 타입 등 여러 정보가담기며 바디에는 정보를 담아 전송할수있다 또한 HTTP에서 지원하는 여러 메소드(Get, Post, Delete, Put, Patch)를 통해 Restful한 URL을 설계할수있다 하지만 과연 과거에서부터 지금까지 이르러서 처음부터 이런기능을 모두 지원한것일까? 우리는 과거의 HTTP와 현재, 그리고 미래에 개발되고있는 HTTP프로토콜에 대한 정보를 알아볼것이다 HTTP 0.9 초기에 HTTP는 1991년에 나온 0.9버전으로써 현재와는 매우다르게 아주 간단한 기능만 가지고있었다 리소스에 대한 경로로 가능한 Http 메서드는 Get방식 밖에지원하지 ..
우리가 웹에서 하는 모든활동들은 OSI 7계층중 4계층인 전송계층에 TCP, UDP 프로토콜위에서 작동합니다 이는 곧 송신자와 수신자를 연결하고 IP로 보내지는 패킷들의 오류제어를 담당하는것으로 이것을 간편하게 말해서 데이터의 전달을 담당하는것이 전송계층이며 TCP 아니면 UDP로 데이터 전달을 하게됩니다 궁극적으로 두가지 전송 프로토콜에 가장큰 차이점은 TCP는 3 Hand Shake를 기반으로 전달되는 데이터가 중요한 데이터일때 송신자와 수신자의 신뢰성있는 전달을 하고싶을때 사용합니다 이는 곧 웹에서 메일이나, 파일같은 데이터의 중요도가 높은 곳에서는 TCP를 사용하는것이 좋습니다 그와 반대로 UDP는 데이터의 신뢰성보다는 빠른응답을 통해 데이터의 신속성을 높힐수있는 프로토콜로써 실시간 스트리밍이나,..
우리가 데이터베이스를 통해 여러가지 작업을 할때 빠질수없는 쿼리문중 하나인 WHERE 조건을 자주 접해봤을것이다 서비스를 운영하면서 많은양의 데이터가 저장된 데이터베이스 테이블에서 원하는 데이터를 가져오기위해서는 일반적으로 Full Scan을 통해서 가져오게되는데 Full Scan이란 모든데이터를 전부 한번씩 보고 원하는 데이터를 찾는것을 말하는데 이는 곧 100만건의 데이터가 저장되어있다면 100만건 전부다 확인하여 원하는 데이터를 구한다는 것을 의미한다 이렇게 Full Scan으로 검색하는것은 적은 데이터에서는 그렇게 문제될것은 없지만 데이터가 많아진다면 검색해야될 데이터도 같이 늘어나게되므로 비효율적이다 만약 2개이상의 조건이 걸려있게되면 검색시간은 기하급수적으로 늘어나게된다 이것을 해결하기위해서 ..
우리가 흔히 많이듣고 접하는 데이터베이스는 관계형 데이터베이스(RDB) 일것이다 전자정부프레임워크라고 해서 공공기관에서 하는 여러 개발프로젝트는 Spring과 RDB인 MySQL, Oracle 등 거의 정형화 되있다고 보면된다 여기서 전자정부프레임워크는 왜 주로 관계형 데이터베이스들이 많은것일까? 이것에 대한 고민으로 부터 시작해서 관계형 데이터베이스의 장점과 단점 그리고 어느때 쓰면좋은지, 관계형데이터베이스의 단점을 보완하기 위해서 나온 방법은 무엇이고 NoSQL의 장점과 단점도 알아보도록 하자 우선 관계형 데이터베이스의 데이터 저장형식에 대해서 살펴보도록 하자 관계형 데이터베이스는 흔히 정형화된 데이터들을 관리하는데 주로쓰이는데 테이블과 튜플, 그리고 안에있는 속성으로 엑셀의 표와같은 형태로 저장되게..
전편에는 마인크래프트 플러그인에 필요한 개발툴과 함께 간단한 환경세팅 방법에 대해서 알아보았다 이번에는 플러그인 개발에 필요한 API와 함께 공식문서를 읽어보도록 하자 사실 어떤 특정한 기능을 만드는방법을 알려주기보다는 원하는 기능을 어떻게 찾고 구현할수있는지에 대한 방법에 대해서 주로 설명하려고한다 물론 예시를 들때는 어떠한 기능을 구현하면서 같이 이해를 하는식으로 하겠지만 기본적으로 자기가 원하는 기능에대해서 분석하고 어떤식으로 접근하는지 아는것이 엄청 중요하다 이는 곧 개발을 하는데 꼭필요한 덕목이기도 하다 우선 API가 무엇인지부터 알아보겠다 API는 Application Programing Inteface로 우리가 애플리케이션을 제작할때 만들어놓은 기능을 사용하기위한 전달체라고 보면될꺼같다 우리..