버전 관리 시스템 개발자에게 소스 코드를 작성함에 있어서 버전을 관리하는 것은 필수불가결한 요소이다. 소스 코드를 작성하다보면 요구사항에 따라 수시로 코드가 바뀌게 되는 것은 부지기수이며 변경된 후에도 이전의 코드로 다시 되돌려야하는 경우도 생긴다. 이 때, 이전의 코
Docker는 컨테이너 기술 기반의 오픈소스 가상화 플랫폼이다. 좀 더 자세하게 말하자면, 애플리케이션 런타임을 지향하는 컨테이너 런타임이다.참고. 컨테이너에는 시스템 컨테이너와 애플리케이션 컨테이너가 있다. 궁금하다면 추가적으로 찾아볼 것.운영체제 수준의 가상화 기술
Spring 또는 Spring Boot를 이용해서 웹 백엔드 서버를 개발하는 경우, 사용자 인증과 인가를 처리하기 위해 Spring Security를 많이 사용한다.Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는
HTTP 1.0 과 HTTP 1.1 차이점https://withbundo.blogspot.com/2021/02/http-http-10-http-11.htmlHTTP 1.1 에서의 HOLB(Head-of-Line Blocking)https://withb
웹 개발을 하다보면 CORS와 관련된 오류를 종종 만나곤 한다.특히, CORS 오류는 한 웹사이트에서 다른 웹사이트 서버로 API 요청을 보낼 때 자주 접하는 오류인데, 예를 들어 URL이 "www.aaa.com"인 사이트에서 "www.bbb.com"인 사이트로 API
이전 글에서 스프링이 제공하는 스프링 트랜잭션이 어떻게 동작하는지에 대해 정리해보았다. 스프링 트랜잭션(이하 트랜잭션으로 통칭)을 독립적으로 각각 사용하면, 트랜잭션 별로 처리되어 트랜잭션 내의 동작에 따라 예외가 발생시에는 롤백하고, 문제가 없을시에는 커밋할 것이다
자바 진영에서 DB에 접근하기 위해서는 JDBC를 사용한다. 그런데 실제 JDBC를 사용하여 DB에 접근할 때 필요한 코드를 보면, 실제 DB에 날리는 SQL 쿼리와 관련된 코드보다 그 외의 코드들이 양이 더 많다. 참고.커넥션 획득, statement 준비 및 실행,
체크 예외와 언체크 예외 자바가 제공하는 예외처리 매커니즘에서 예외의 종류는 크게 체크 예외와 언체크 예외로 나눌 수 있다. 이 두 종류의 예외는 다음과 같은 특징과 차이점을 가진다. 체크 예외 : 컴파일러가 예외를 체크한다. 즉, 체크 예외는 예외가 발생했을 때 반
스프링을 이용해 개발한 웹 애플리케이션에서도 당연히 데이터베이스를 접근해야하는 경우가 있다. 당연하게도 트랜잭션을 사용해야하는 경우도 생긴다. 그러므로, 스프링은 어떻게 트랜잭션 기능을 제공하는지 알아야한다.
컴퓨터의 모든 프로그램은 CPU에 의해 실행되기 위해 메인 메모리인 RAM에 적재되어야 한다. 하지만, RAM은 하드웨어이므로 물리적 한계점이 존재한다. 흔히 말하는 RAM 용량이 이에 해당한다. RAM은 본인의 최대 용량을 넘는 데이터를 한번에 기억할 수 없다. 따라
데이터를 저장할 때 단순히 파일에 저장해도 되는데, 굳이 데이터베이스에 저장하는 이유는 무엇일까? 다른 여러가지 이유들이 있겠지만, 가장 대표적인 이유는 DB는 트랜잭션이라는 개념을 지원하기 때문이다. DB에서 트랜잭션은 하나의 논리적 기능을 안전하게 처리하도록 보장
이전 포스트에 JDBC를 이용해서 DB를 사용하고자 할 때, 가장 먼저 해야하는 일은 DB 커넥션을 얻는 일이었다. DB 커넥션을 얻을 때는 다음과 같은 과정을 거친다. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다. DB 드라이버는 DB와 TCP/IP
애플리케이션을 개발할 때 중요한 데이터는 대부분 데이터베이스에 보관한다.데이터베이스는 그 자체로도 하나의 시스템이기 때문에 보통 애플리케이션과 분리되어있는데, 만약 클라이언트가 애플리케이션을 통해 데이터를 저장하거나 조회하는 경우, 애플리케이션 서버는 다음 과정을 통해
HTTP를 이용하여 통신을 할 때, 보통의 경우 문자 데이터를 보내는 경우가 많다.만약, 문자 데이터가 아니라 파일 형태의 데이터를 보내고자한다면 어떻게 해야할까? 일반적으로 문자 데이터를 HTTP를 통해 보내는 방법으로는 쿼리 파라미터 형식의 GET 요청으로 요청 U
스프링 MVC 컨트롤러에서는 메서드의 파라미터로 다양한 타입의 데이터를 받을 수 있다. 이게 가능했던 이유는 스프링의 ArgumentResolver가 메서드에 필요한 파라미터 값을 만들어서 넣어주기 때문이었는데, 그 때의 기억을 되살려보자. HTTP 요청 메시지로 넘어
HTTP(Hypertext Transfer Protocol)는 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다.웹 상에서 데이터를 주고받기 위해서는 HTTP 프로토콜을 사용하고, HTTP 프로토콜은 1991년에 최초로 제안되어, 현재는