전체 글
-
Network - HTTPComputer Science/Network 2021. 12. 13. 16:03
HTTP HTTP란? ㆍ HTTP는 HyperText Transfer Protocol의 약자로 www 상에서 사용이 되는 프로토콜이다. ㆍ 1990년대 Tim Berners-Lee가 World Wide Web을 만들고, 하이퍼텍스트 문서들을 주고받기 위한 규약으로 만든 것이 HTTP이다. ㆍ 현재는 문서들 뿐만 아니라 이미지, 비디오, 음성 등 거의 모든 형식의 데이터를 전송하는 데 사용되고 있다. ㆍ HTTP는 서버와 클라이언트 사이에 요청과 응답을 주고받는 프로토콜로, 우리가 흔히 웹 브라우저 주소창에 입력하는 웹 주소인 URL을 통해 이루어진다. ㆍ 실제 전송은 TCP를 통해 이루어지며 포트는 80번을 이용한다. HTTP 버전 ㆍ HTTP 초기에는 버전 표시가 없었고, 이후 업데이트가 되면서 버전 ..
-
Java - 인터페이스Language/Java 2021. 12. 8. 13:33
인터페이스란? 인터페이스의 개념 - 인터페이스란, 자바 프로그래밍 언어에서 클래스들이 구현해야 하는 동작을 지정하는 데 사용되는 추상 자료형이다. - 즉, 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 역할을 하는 것이다. - 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 인터페이스를 사용한다. 인터페이스의 문법 인터페이스의 구성요소 - 인터페이스는 interface 키워드를 통해 선언할 수 있으며, 일반 클래스에서 implements 키워드를 통해 인터페이스를 구현할 수 있다. - 또한, Java 8 이전까지는 상수, 추상 메서드만 선언이 가능했지만, Java 8부터는 디폴트 메서드, 정적 메서드가 추가되었다. public interface 인터페이스명 { /..
-
Java - 객체지향언어Language/Java 2021. 12. 7. 14:46
객체지향언어의 정의 객체(Object)란? - 객체란 세상에 존재하는 모든 것을 의미한다. 즉, 주변에 있는 사물이나 생명체 같은 모든 것들을 말한다. - 프로그래밍에서의 객체는 데이터의 분산을 막기 위해 데이터와 기능을 하나로 묶은 그룹이라고 할 수 있다. 객체지향언어(Object Oriented Langauge)란? - 컴퓨터 프로그래밍의 한 가지 기법으로, 객체를 만들고 객체를 사용하는 프로그래밍 방법을 말한다. - 프로그램을 그저 데이터와 처리방법으로 나누는 게 아닌, 상태와 행위를 가진 객체들을 만들고, 이러한 객체들을 레고 블록처럼 서로 상호작용 하도록 조립해서 하나의 프로그램을 만드는 것을 의미한다. 객체지향언어의 특징 캡슐화(Encapsulation) public class Person {..
-
Spring Boot - JPA의 영속성 컨텍스트Framework & Library/Spring Boot 2021. 12. 2. 13:36
영속성 컨텍스트의 정의 개요 Spring Boot를 사용하고 있는 요즘에는 Spring 프레임워크에 맞춰져 있는 Spring Data JPA를 사용한다. 그런데, Spring Data JPA를 사용하면서 객체에 있는 데이터들이 스스로 변화를 감지하고, 객체의 데이터가 자동으로 변경, 생성, 삭제가 이루어지는데, 이 과정이 어떻게 가능한지 영속성 컨텍스트를 통해 알아보고자 한다. 영속성 컨텍스트란? 영속성 컨텍스트란, Entity를 영구적으로 저장하는 환경을 말한다. Spring으로 JDBC를 이용하여 개발을 해본 사람들은 DB에 있는 데이터가 어떤 식으로 읽히고 쓰이는 건지 이해할 수 있을 것이다. 간단하게 요약하자면, 다음과 같다. Connection 생성 - Connection 연결 - Stateme..
-
Spring Boot - JPAFramework & Library/Spring Boot 2021. 12. 1. 14:37
JPA의 정의 JPA란? JPA는 Java Persistence API의 약자로 Java에서 관계형 DB를 사용하기 위한 양식을 정의한 인터페이스이다. 말 그대로 인터페이스이기 때문에, 어떤 코드가 구현되어 있는 것은 아니다. 단지, Java라는 객체 지행 프로그래밍 언어에서 관계형 DB를 객체 지향적으로 설계하기 위한 모범 사례를 JPA라고 하는 것이다. 즉, Java 진영에서 ORM 기술 표준으로 애플리케이션과 JDBC 사이에서 동작하는 것이다. 여기서 ORM이란, Object Relationship Mapper의 약자이다. JDBC나 Spring JDBC, iBatis 같은 경우 DB 처리를 위해 로직을 별도로 작성하고, 이를 SQL 코드를 통해 질의하였는데, ORM은 SQL 코드를 작성하지 않고,..
-
Spring Boot - Transaction(트랜잭션)Framework & Library/Spring Boot 2021. 11. 29. 23:03
트랜잭션의 정의 트랜잭션이란? 돈을 송금하는 과정을 예로 들어 트랜잭션의 개념을 알아보겠다. 돈을 송금하는 과정은 아래와 같다. 1. 송금하고자 하는 계좌와 금액을 입력한다. 2. 이체하는 계좌에서 돈이 출금된다. 3. 이체받는 계좌에 돈이 입금된다. 4. 거래가 정상적으로 완료된다. 거래가 정상적으로 처리되면 문제가 없지만, 중간에 문제가 발생할 수 있다. 예를 들어, 2번과 3번 과정 사이에서 문제가 발생하면, 돈은 출금되었는데 이체받는 계좌에는 돈이 들어오지 않게 된다. 따라서, 돈을 송금하는 과정에서 문제가 발생하면 이와 관련된 모든 과정이 취소되고 원래 상태로 되돌아와야 한다. 트랜잭션이란, 데이터베이스의 상태를 변화시킬 때 더 이상 분리할 수 없는 작업의 단위를 의미한다. 위의 예를 볼 때 돈..