[DEV] study&learn
article thumbnail
REST API란?
테코톡 2023. 1. 20. 10:43

REST API 에 대한 일반적인 인식 - URI 를 통해 자원을 지정 - HTTP 메서드 -> 자원에 대한 행위를 표현 :: CRUD :: POST /user GET /user/1 PUT /user/1 DELETE /user/1 로이 필딩의 REST API REST - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 대한민국의 힙합 음악가에 대해서는 R-EST 문서를 참고하십시오. REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프 ko.wikipedia.org REST 아키텍처 스타일에 부합하는 API REST 아키텍처에 적용되는 6가지 제한 조건 Client-Server Stateless Cache Un..

article thumbnail
CI/CD 와 무중단 배포
테코톡 2023. 1. 13. 23:23

CI/CD 📌 용어정리 컴파일 프로그래머가 작성한 소스 코드를 기계어로 변환하는 과정 빌드 소스 코드 파일을 컴퓨터에서 실행할 수 있는 소프트웨어 산출물로 만드는 과정 배포 빌드의 결과물을 사용자가 접근할 수 있는 환경에 배치하는 것 CI (Continuous Integration) 이란? 지속적 통합이라는 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음을 의미한다. CI 가 있기전에 ... 개발자들은 머지 데이라는 날을 통해 모든 분기 소스 코드를 병합하는 업무를 하였다. 이는 결과적으로 많은 리소스의 낭비를 초래하게 되었다. CI 과정 개발자가 코드 병합을 요청하면 → CI 툴이 빌드와 테스트를 진행한다. (성공..

article thumbnail
Servlet & Spring Web MVC
테코톡 2023. 1. 12. 22:27

Servlet 그리고 Spring Web MVC Servlet 은? 웹 애플리 케이션을 만들 때 필요한 인터페이스 Spring Web MVC 는? Spring Framework 에 있는 모듈로써 MVC 패턴을 사용하여 Web Service 를 만든다. 그리고 Servlet 을 사용한다. Servlet 은 왜 생겼을까? 태초에 웹 프로그래밍은 정적 데이터만 전달할 수 있었다. → 사용자(요청)에 따라 다른 처리를 해줄 수 없다. → 동적인 처리를 해주는 웹 애플리케이션이 없다. 동적 데이터를 처리하는 CGI CGI 란 Web Server 와 프로그램 사이의 규약을 의미한다. → CGI 는 요청이 들어올 때 마다 프로세스를 만든다. → 따라서 많은 사용자를 처리하기엔 무리가 있었다. 문제점 1. 요청마다 무..

article thumbnail
AOP 와 Spring AOP
테코톡 2023. 1. 11. 23:40

🧐 AOP 가 무엇일까? Aspect Oriented Programming 관점 지향 프로그래밍 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 페러다임 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 개발자는 반복 작업을 줄이고 핵심 기능 개발에만 집중할 수 있음 즉, 여러 객체에 공통으로 적용할 수 있는 기능을 분리하여 재사용성을 높여주는 프로그래밍 기법이다. 프록시란? 자신이 클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 것(대리인, 대리자) 사용 목적에 따라 부르는 이름이 달라진다. 클라이언트가 타깃에 접근하는 방법을 제어 -> 프록시 패턴 타깃에 부가적인 기능을 부여 -> 테코레이터..

article thumbnail
Spring 과 Spring Boot
테코톡 2023. 1. 10. 16:02

Spring Boot? 👉🏻 dependency Spring - dependency 가 너무 길다. - 버전까지 명확하게 관리해주어야 한다. Spring Boot - Spring 에 비해 dependency 가 짧고 간결하다. (gradle 을 사용하면 더 짧아짐!) - 버전 관리를 권장 버전으로 자동으로 설정해준다! 👉🏻 Configuration Spring - configuration 이 너무 길다. Spring Boot - 짧고 간결한 application.properties 로 대체! - 요즘은 .properties 대신 .yml 을 이용하기도 한다. (사람이 훨씬 읽기 쉬운 형식) 👉🏻 Tomcat Spring - 외장 서버로 Tomcat 을 사용한다. - 구동 시간이 길어진다는 특징이 있다. ..

article thumbnail
JVM Stack & Heap
테코톡 2023. 1. 10. 03:04

JVM - 자바 바이트 코드는 타겟 플랫폼에 상관 없이 JVM 위에서 동작한다. - 물론, JVM 은 타겟 플랫폼에 의존한다. Write Once, Run Anywhere" - Sun Microsysyems 네가 짠 자바 코드를 컴파일해서 배포하면, 어떤 플랫폼이든 다시 컴파일할 필요 없이 실행시킬 수 있어! 하지만 실행하려면 그 플랫폼에 맞는 JVM 이 설치되어 있어야 해! 자바 코드가 실행되기까지 모든 쓰레드가 공유 Method Area - 클래스 로더가 클래스 파일을 읽어오면, 클래스 정보를 파싱해서 Method Area 에 저장 Heap - 프로그램을 실행하면서 생성한 모든 객체(인스턴스)를 Heap 에 저장 쓰레드 마다 존재 Program Counter (PC) - 각 스레드는 메서드를 실행하고..