전체 글
-
HTTP Method PUT, PATCH 차이카테고리 없음 2023. 5. 30. 00:31
HTTP PUT 메서드 요청 페이로드를 사용해 새로운 리소스를 생성 대상 리소스를 나타내는 데이터를 대체 HTTP PATCH 메서드 리소스의 부분적인 수정을 할 때 사용 PUT, PATCH 차이점 update 방식의 차이 요청한 URI에 자원이 존재하지 않을때 입력 멱등성의 관점 해당 테이블이 존재한다고 가정하고 차이점을 알아보자 id score name 1 40 철수 2 60 영희 3 80 경수 update방식의 차이 id가 1인 사람에게 두가지의 PUT 요청을 보냄 PUT /student?id=1 { "name" : "창수" } PUT /student?id=1 { "name" : "창수", "score" : "100" } name만 바꾸기 위해 PUT 메서드로 요청을 보내면 전체 데이터를 대체하기 때..
-
직렬화와 역직렬화프로그래밍 기초 공부 2023. 4. 4. 03:00
데이터 직렬화 메모리를 디스크에 저장하거나, 네트워크 통신에 사용하기 위한 형식으로 변환하는 것 데이터 역직렬화 디스크에 저장한 데이터를 읽거나, 네트워크 통신으로 받은 데이터를 메모리에 쓸 수 있도록 변환하는 것 직렬화를 하는 이유 개발할 때 사용하는 데이터의 메모리 구조는 크게 2가지 값 형식 데이터 int, float, char 등 값 형식 데이터는 스택에 메모리가 쌓이고 직접 접근이 가능 디스크에 저장하거나 통신할 때 직접적으로 사용 가능 참조 형식 데이터 객체와 같은 참조 형식 변수를 선언하면 힙에 메모리가 할당되고, 스택에서는 이 힙 메모리를 참조하는 구조 실제 데이터 값이 아닌 힙에 할당되어 있는 메모리 번지 주소를 가지고 있기 때문 프로그램이 종료되면 기존에 할당되었던 메모리는 해제되고 없..
-
쿠버네티스란?프로그래밍 기초 공부 2023. 4. 2. 02:33
쿠버네티스 컨테이너화된 어플리케이션을 배포, 관리, 확장할 때 수반되는 다수의 수동 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼 단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할 Serverless, CI/CD, 머신러닝 등 다양한 기능이 쿠버네티스 플랫폼 위에서 동작함 쿠버네티스 역사 전통적인 배포 시대: 초기 조직은 어플리케이션을 물리 서버에서 실행했음. 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제가 발생함. 이러한 문제를 해결하기 위해서 여러 물리 서버에서 각 어플리케이션을 실행해야 하지만 물리 서버를 많이 유지하기 위해서 조직에게 많은 비용이 들..
-
Docker 란?프로그래밍 기초 공부 2023. 4. 1. 14:23
컨테이너 컨테이너는 Host OS 상에서 리소스를 논리적으로 구분하여 마치 별도의 서버인 것 처럼 사용할 수 있게 하는 기술 물리적으로 구분하지 않기 때문에 쉽게 없애고 다시 생성하고 할 수 있는 것 가벼움 컨테이너 사용 이유 여러 애플리케이션에서 사용하고 있는 라이브러리나 미들웨어의 버전에 대한 충돌을 회피 이식성과 확장성이 좋음 컨테이너 이미지 그대로 의존성 없이 다른 환경에서 실행 가능 컨테이너를 여러 개 실행해서 이중화 가능 다양한 운영 환경을 지원할 수 있음 Windows 환경에서 Linux를 실행하거나 그 반대도 가능 Docker 컨테이너 기술을 사용하여 애플리케이션에 필요한 환경을 신속하게 구축하고 테스트 및 배포를 할 수 있게 해주는 플랫폼 다양한 프로그램들과 실행환경을 컨테이너로 규격화시..
-
Kafka란?프로그래밍 기초 공부 2023. 3. 31. 04:16
Kafka 빠른 확장 가능한 작업을 위해 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬어플리케이션을 처리하기 위한 목적으로 설계된 고성능 오픈소스 분산 이벤트 스트리밍 플랫폼 Pub-Sub 모델의 메시지 큐 형태로 동작하고, 분산환경에 특화되어 있음 구성요소 KafkaCluster : 카프카의 브로커들의 모임. Kafka는 확장성과 고가용성을 위하여 broker들이 클러스터로 구성 Broker : 각각의 카프카 서버, 동일 노드에 여러 브로커를 띄울 수 있음 Zookeeper : 카프카 클러스터 정보 및 분산처리 관리 등 메타데이터 저장. 카프카를 띄우기 위해 반드시 실행되어야 함 Producer : 메시지(event)를 발행하여 생산(write) 하는 주체 Consumer :..
-
JPQL 이란?프로그래밍 기초 공부 2023. 3. 30. 02:35
JPQL Java Persistence Query Language의 약자 JPA의 일부로 정의된 플랫폼 독립적인 객체지향 쿼리 언어임 JPA는 엔티티 객체를 중심으로 개발하기 때문에 SQL을 사용하지 않음 엔티티 객체를 대상으로 쿼리를 작성함 JPQL 특징 JPQL은 ANSI 표준에서 지원하는 쿼리 명령문을 모두 제공 ex) SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 등 JPQL은 SQL을 추상화하여 객체 중심적, 객체 지향적 쿼리 언어 테이블이 아닌 객체를 대상으로 검색을 수행하는 쿼리 언어 JPQL과 SQL을 구분할 수 있는 특성 JPQL은 SQL을 추상화한 것으로, 특정 DB에 의존적 또는 종속적이지 않다. DB 사용에 있어서 자유롭다. JPA를 통해 작성된 JP..
-
DAO, DTO, VO란?프로그래밍 기초 공부 2023. 3. 23. 22:20
DAO Data Access Object의 약자 DB의 data에 접근하기 위한 객체로 실제로 DB에 접근하는 객체 데이터에 접근하도록 DB접근 관련 로직을 모아둔 객체 프로젝트의 서비스 모델과 실제 DB를 연결하는 역할 DAO와 Repository DAO와 Repository 모두 퍼시스턴스 로직에 대한 객체지향적인 인터페이스를 제공 도메인 로직과 퍼시스턴스 로직을 분리하여 관심의 분리 원칙을 만족시키는 데에 목적이 있음 DAO의 인터페이스는 DB의 CRUD 쿼리와 1대1 매칭되는 세밀한 단위의 을 제공함 Repository의 인터페이스는 메모리에 로드된 객체 컬렉션에 대한 집합 처리를 위한 오퍼레이션을 제공함 DAO가 제공하는 오퍼레이션은 Repository가 제공하는 오퍼레이션보다 세밀함 Repos..
-
Spring Annotation 정리프로그래밍 기초 공부 2023. 3. 13. 23:09
Annotation이란? Java5부터 새롭게 추가된 문법요소 사전적으로는 "주석"이라는 의미를 가짐 자바 코드에 @를 이용해 주석처럼 달아 특수한 의미를 부여해줌 프로그램에 관한 데이터를 제공하고, 코드에 정보를 추가하는 정형화된 방법 annotation 사용시 코드량이 감소하고 유지보수가 쉬워지며 생산성이 증가 @Bean 개발자가 작성한 Method를 통해 반환되는 객체를 Bean으로 만드는 어노테이션 주로 @Configuration 어노테이션이 들어간 Spring을 설정하는 클래스 내에 들어가는 메서드를 선언 @Configuration 스프링 IOC Container에게 어노테이션이 붙은 해당 클래스가 Bean으로 구성된 클래스임을 알려주는 어노테이션 @EnableAutoCongiguration 사..