Server 07 - DB Locks

DB에서 Lock?

뒷 단 작업하면서 데이터가 왔다리 갔다리 하는 데에 신경을 많이 써야 한다. 특히 동일한 자료를 동시에 사용할 때 주의해야 한다. 이를 DB에서 여러 트랜잭션이 같은 자원에 동시에 접근 했을 때라 하며 줄여서 경쟁 상태라 한다. 이러한 경쟁 상태가 되었을 시, 데이터 충돌이나 불일치 현상이 발생되기 때문에 경쟁 상태를 막아줘야 한다. 이 막아주는 행동 매커니즘을 DB에선 LOCK이라 한다.

Continue reading

Server 05 - NoSQL

기존 RDBMS의 한계

관계형 데이터베이스 관리 시스템, 통칭 RDBMS는 개발자 공부에서 DB라는 것을 배울 때 기초적으로 나오는 기본적인 데이터 베이스 관리 시스템이다. 테이블을 이용하여 정형화된 데이터를 관리하는 시스템으로서 SQL문을 써서 데이터를 만지고, 트랜잭션과 연산을 지원하는 가장 기본적인 데이터 관리 방법이 바로 RDBMS이다.

Continue reading

Server 04 - Forward와 Redirect

Forward 방식과 Redirect 방식

웹 애플리케이션 개발에서는 서버에서 클라이언트에게 응답을 전달할 때 두가지 방식이 있다. 바로 Forward와 Redirect가 있다. 그저 요청을 보내는 동작이자 페이지가 전환되는 것은 같은데, 방식이 두 가지나 있다. 왜 두가지 방식이 있는지 알기 위해 Forward와 Redirect의 방식을 알아본다.

Continue reading

Spring 09 - PRG 패턴

멱등성 없는 POST

Server 02 - API와 멱등성에 나온 멱등성의 개념을 다시 상기하면 멱등성은 여러번 동일한 요청을 보낼 때, 결과가 항상 동일한다라는 개념이다. 그리고 이 멱등성은 GET, PUT, DELETE에는 존재하지만, POST에서는 멱등성이 없다.
이 말은 POST 요청을 여러번 보낼 때, 동일한 내용이라도 여러 개 결과가 나온다는 이야기가 된다. 즉, 중복된 내용이 여러번 POST 요청에 의해 생길 수도 있다.

Continue reading

Server 03 - 쿠키와 세션

쿠키와 세션의 존재 이유

HTTP 프로토콜의 가장 큰 특징은 비연결성무상태이다. 요청하는 순간 연결했다가 응답 완료되면 연결을 끊는 것이고, 웹 서버와 클라이언트 상태 정보를 유지하지 않는 것이 가장 큰 특징이다.
그런데 HTTP 프로토콜 상에서 뭔가 특별한 기능을 수행하려 할 땐 위 두가지 특성은 방해가 된다. 예를 들어 로그인하여 나의 메일을 보는 과정에서 나의 정보가 비연결성과 무상태 특징에 의하여 알 수가 없을 텐데, 어떻게 나의 정보가 유지되어 내 메일을 볼 수 있을까?
이 것의 대한 해답은 이데 설명할 2가지 개념으로 답할 수 있다. 바로 쿠키세션이다.

Continue reading

프로그래머스 코딩테스트 특강 4번 문제

문제

야근을 하면 야근 피로도가 쌓인다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값이다. N시간 동안 야근 피로도를 최소화하도록 일할 것이다. 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성하시오.

Continue reading

Pagination