JAVA Back-End(25)
-
스프링과 객체지향, SOLID
스프링 프레임워크 핵심 기술 스프링 DI 컨테이너, AOP, 이벤트 , 등 웹 기술 스프링 mvc , 스프링 webflux 데이터 접근 기술 트랜잭션 처리, JDBC, ORM지원, XML지원 기술 통합 캐시 , 이메일, 원격접근, 스케줄링 테스트 스프링 기반 테스트 지원 언어 자바, 코틀린, 그루비 스프링 부트 프레임워크 최근 스프링부트를 사용해 스프링 프레임워크의 기술들을 편리하게 사용. 최근엔 기본으로 많이 사용한다 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 tomcat같은 웹서버를 내장함. 그래서 별도 웹 서버를 설치할 필요 없다. 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링과 3rd parth(외부) 라이브러리 자동 구성 관례에 의한 간결한 설정 '스프링'..
2023.03.28 -
REST API 와 URI 설계
REST (Representational State Transfer : 자원의 상태 전달) - 네트워크의 아키텍처 특징 1. client, server client와 server가 독립적으로 분리 되어 있어야 한다. 2. Stateless 요청에 대해서 client의 상태를 서버에 저장하지 않는다. 3. Cache client는 서버의 응답(response)를 Cache(임시저장) 할 수 있어야 한다. client가 Cache를 통해 response를 재사용! 할 수 있어야 하고, 이를 통해 서버의 부하(오버헤드)를 낮춘다. (서버에서도 캐싱해서 부하를 낮추기도한다. ex) redis cache같은?) 4. 계층화된 시스템 ( Layered System) server와 client 사이에 방화벽, Gat..
2023.02.11 -
[kotlin] null-safety / 예외처리
kotlin에서의 null 안정성을 정리 널 안정성 (null-safety) 1. null참조의 위험성 프로그래밍 언어에서 가장 많이 발생하는 예외 유형은 NullPointerException - 줄여서 NPE null을 발명한 토니호어는 1965년 null을 발명 후 수십년간 수십억 달러의 시스템 오류 및 피해가 발생해 null을 개발한 게 1조 짜리 실수였다고 고백함... ㅜㅜ >> 자바는 NPE을 줄이기 위해 Optional을 지원 >> 자바의 Optional은 값을 래핑하기 위해 때문에 객체 생성에 따른 오버헤드(미미하지만) 발생하고, 컴파일 단계에서 null가능성을 검사하지 않음 ㅜ >> 코틀린을 비롯한 최신 언어에선 null가능성을 컴파일러가 감지해서 NPE가능성을 줄일 수 있음! fun ge..
2023.02.02 -
kotlin 문법 정리 (변수 / 함수 / 흐름제어)
변수 val a: Int = 10 // type없어도 compile 오류 x (타입추론) - 생략가능 val b = "hellio" // 지연할당 지원. 지연할당 시에는 타입을 선언해줘야 합니다. val c: Int c = 10 // val(value) - read only. 재할당 시 컴파일 오류 // var (variable) - 재할당 가능 함수 // 기본적 함수 선언 fun sum(a: Int, b: Int): Int { return a+b; } // 표현식 스타일 fun sum2(a: Int, b: Int): Int = a + b; // 표현식 & 반환타입 생략 fun sum3(a: Int, b: Int) = a + b; // 몸통이 있는 함수는 반환 타입을 제거하면 컴파일 오류 fun sum4..
2023.02.01 -
상태유지(Cookie & Session)
HTTP는 상태 유지가 되지 않는 프로토콜. client에 request에 response 하고 나면 해당 client와 연결을 지속하지 않고 끊어버린다..ㅜ ---> 이런 문제를 해결하기 위해 Cookie/Session이란 기술이 등장! (상태 유지 : 해당 클라이언트가 로그인을 했던 지 어떤 쇼핑을 했던 지/ 두, 세 번째 로그인했을 때 이 클라이언트가 누구인 지 정보를 알게 한다거나 할 수 있다.) Cookie - 정보를 사용자 컴퓨터에 저장 - 저장된 정보를 다른 사람/시스템에서 볼 수 있다는 단점. (공용pc/피씨방 등등에 정보를 남긴다..) - 유효기간이 지나면 사라짐 Session - 서버에 저장 - 서버가 종료되거나 유효시간 지나면 사라짐 쿠키의 동작 과정 세션의 동작 과정 Cookie j..
2019.06.14 -
[Spring] Spring MVC
Model - View - Control 패턴 파란색 박스 : Spring이 제공해주는 것들 보라색 박스 : 개발자가 만들어야 하는 부분 녹색 박스 : Spring이 제공해주기도 하고 개발자가 만들어야 하는 부분도 있다. Spring은 보통 웹프레임워크가 Front Controller패턴(맨 앞단에서 컨트롤러가 진두지휘하는)을 가집니다. (DispatcherServlet 클래스가 Front Controller) 예외 처리도 이 DS클래스가 맡아서 합니다. request 선처리 작성 시 사용 Component org.springframework.web.servlet.LocaleResolver - 지역 정보 결정 org.springframework.web.servlet.FlashMapManager - Fla..
2019.06.08