웹 서버와 was의 차이점은 무엇일까? 서버 개발에 있어서 기초적인 개념이다. 먼저, 정적 페이지와 동적 페이지를 알아보자 Static Pages > 바뀌지 않는 페이지 웹 서버는 파일 경로 이름을 받고, 경로와 일치하는 file contents를 반환함
API Key 서비스들이 거대해짐에 따라 기능들을 분리하기 시작하였는데 이를위해 Module이나 Application들간의 공유와 독립성을 보장하기 위한 기능들이 등장하기 시작했다. 그 중 제일 먼저 등장하고 가장 널리 보편적으로 쓰이는 기술이 API Key이다. 동작방식 사용자는 API Key를 발급받는다. (발급 받는 과정은 서비스들마다 다르다. 예를...
모바일의 시대에 등장한 클라이언트사이드렌더링 Single Page Application(SPA)! 고려해야할 점들이 있다. SPA는 최초 한 번 페이지 전체를 로딩한 후 데이터만 변경하여 사용할 수 있는 애플리케이션을 의미한다. 렌더링 방식 SPA는 클라이언트사이드
CSRF > Cross Site Request Forgery 웹 어플리케이션 취약점 중 하나로, 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위 (modify, delete, register 등)를 특정한 웹사이트에 request하도록 만드는 공격을 말한다. 주로 해커들이 많이 이용하는 것으로, 유저의 권한을 도용해 중요한 기능을 실행...
HTTP status code > 클라우드 환경에서 HTTP API를 통해 통신하는 것이 대부분임 > > 이때, 응답 상태 코드를 통해 성공/실패 여부를 확인할 수 있으므로 API 문서를 작성할 때 꼭 알아야 할 것이 HTTP status code다 10x : 정보 확인 20x : 통신 성공 30x : 리다이렉트 40x : 클라이언트 오류 50x : 서...
HTTP Request Methods GET 리소스(데이터)를 받기 위함 URL(URI) 형식으로 서버 측에 리소스를 요청한다. HEAD 메세지 헤더 정보를 받기 위함 GET과 유사하지만, HEAD는 실제 문서 요청이 아닌 문서에 대한 정보 요청이다. 즉, Response 메세지를 받았을 때, Body는 비어있고, Heade...
Cookie & Session | | Cookie | Session | | :------: | :--------------------------------------------------: | :--------------: | | 저장위치 |...
브라우저 동작 방법 "브라우저가 어떻게 동작하는지 아세요?" 웹 서핑하다보면 우리는 여러 url을 통해 사이트를 돌아다닌다. 이 url이 입력되었을 때 어떤 과정을 거쳐서 출력되는걸까? web의 기본적인 개념이지만 설명하기 무지 어렵다.. 렌더링..? 파싱..? 브라우저 주소 창에 http://naver.com을 입력했을 때 어떤 과정을 거쳐서 네...
우선 Homebrew 설치 터미널에 입력하면 됨! >/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 설치 후 brew --version 하니까? >$ brew --version zsh: command not found: brew 라...
sourcetree - github 처음 맥북을 사용하고 sourcetree로 깃 푸쉬를 할 때 아래와 같은 오류가 발생했다.. > remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-http...
Spring 프레임워크는 엔터프라이즈 급 애플리케이션 개발을 위해 광범위하게 사용되는 자바 플랫폼입니다. 여기 Spring의 핵심 3요소, 즉 IoC(Inversion of Control), AOP(Aspect-Oriented Programming), 그리고 PSA(Portable Service Abstraction)에 대해 설명합니다.: 1. IoC (...
API에 권한 기능이 없으면, 아무나 회원 정보를 조회하고 수정하고 삭제할 수 있다. 따라서 이를 막기 위해 인증된 유저만 API를 사용할 수 있도록 해야하는데, 이때 사용할 수 있는 해결 책 중 하나가 Spring Security다. 스프링 프레임워크에서는 인증 및 권한 부여로 리소스 사용을 컨트롤 할 수 있는 Spring Security를 제공한다. ...
더티 체킹 (Dirty Checking) ORM 구현체 개발 시 더티 체킹이라는 말을 자주 볼 수 있다. 더티 체킹이 어떤 것을 뜻하는 지 간단히 살펴보자. JPA로 개발하는 경우 구현한 한 가지 기능을 예로 들어보자 ex) 주문 취소 기능 orderId를 통해 주문을 취소하는 메소드다. 데이터베이스에 반영하기 위해선, update와 같은 쿼리가 ...
JPA란 PA는 오늘날 스프링에서 많이 활용되고 있지만, 스프링이 제공하는 API가 아닌 자바가 제공하는 API다. 자바 ORM 기술에 대한 표준 명세로, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스다. ORM(Object Relational Mapping) ORM 프레임워크는 자바 객체와 관계형 DB를 매핑한다. 즉, ...
Spring Application >스프링에 대해서 간략하게 집고만 넘어가자. Spring Application은 Java 기반의 애플리케이션을 구축하기 위한 포괄적인 프레임워크다. Spring Framework는 효율적이고 유연한 방식으로 애플리케이션을 개발하고 유지보수하기 위한 다양한 기능과 특징을 제공한다. Spring 주요기능 IoC (Inve...
Test Code 작성하는 이유! 1번째 이유 Test 코드를 작성하지 않고 결과를 검증하는 과정은 비용이 많이 든다. Test코드 사용 X (싱글 애플리케이션 (Monolithic Arichitecture)에서의 모습) > 검증 코드 작성 애플리케이션 실행 PostMan 혹은 브라우저 Request 요청 log 혹은 print로 결과 검증 원하지 않는 ...
Spring MVC 흐름 spring MVC의 주요 구성 요소 Dispatcher Servlet Dispatcher Servlet이 거의 관제탑?이라고 생각하면 된다. Servlet class이며, 모든 client의 요청을 처리한다. Controller(Action)에게 client의 요청을 전달, Controller가 리턴한 결과값을 View에 전달...
빈 스코프(Bean Scope)란? 빈 스코프는 말 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다. 싱글톤(Singleton) : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입(Prototype) : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만...
[Java] 컴포지션(Composition) 우선 상속(Inheritance)이란, 하위 클래스가 상위 클래스의 특성을 재정의 한 것을 말한다. 부모 클래스의 메서드를 오버라이딩하여 자식에 맞게 재사용하는 등, 상당히 많이 쓰이는 개념이면서 활용도도 높다. 하지만 장점만 존재하는 것은 아니다. 상속을 제대로 사용하지 않으면 유연성을 해칠 수 있다. 구...
Interned String in Java 자바(Java)의 문자열(String)은 불변(immutable)하다. String의 함수를 호출을 하면 해당 객체를 직접 수정하는 것이 아니라, 함수의 결과로 해당 객체가 아닌 다른 객체를 반환한다. String 객체는 불변 객체이기 때문에 동일한 객체가 공유될 수 있는 특징을 가지고 있습니다. 이 특징을 잘...