본문 바로가기

공부141

[chap16] JSON 응답과 용청 처리 JSON 규칙 { "name" : "유관순", "birthday": "1902-12-16", "edu" : [ { "title" : "이화학당보통과", "year" : 1916 }, { "title" : "이화학당고등과", "year" : 1919 } ] } 중괄호 이름과 값 : 응답 : @RestController @Controller @ResponseBody JSON 형태 변경 1. 제외 예외처리 @JsonIgnore Response를 정해서 반환해주는데, 이걸 굳이 사용하는 경우가 있을까? public class Member { private id; private email; @JsonIgnore private String password; } 2. 날짜 형식 변환 처리1 @JsonFormat { .. 2022. 6. 9.
[chap15] 간단한 웹 어플리케이션의 구조 간단한 웹 어플리케이션의 구성 요소 프론트 서블릿(DispatcherServlet) : 웹 브라우저의 모든 요청을 받는 창구역할 컨트롤러 + 뷰 서비스 DAO 프론트 서블릿 → 컨트롤러 → 서비스 → DAO 컨트롤러 컨트롤러는 사용자 요청과 어플리케이션의 기능을 연결하는 매개체 즉, 로직을 직접 수행하지 않는다. 따라서, 컨트롤러가 도메인을 멤버변수로 가지거나 반환하는 목적으로 쓰이는 것은 컨트롤러 계층의 목적과 부합하지 않는다. 클라이언트가 요구한 기능 실행 응답 결과 생성 (모델 생성, 뷰 선택) 서비스 비즈니스 로직을 수행하는 영역 Transactional 활용 컨트롤러에서의 DAO 접근 동의하지 않는다. 서비스에서 단순히 DAO 메서드만 호출하더라도 서비스에서의 메서드는 하나의 비즈니스 기능이며 .. 2022. 6. 9.
4장. 클래스, 객체, 인터페이스 클래스 계층 정의 코틀린 인터페이스 자바와 다른점 디폴트 구현 메서드가 가능하다 추상 프로퍼티 선언을 넣을 수 있다 구체적 타입 지정 문법이 다르다 자바 : Clickable.super.showOff() 코틀린 : super.showOff() interface Clickable { fun click() fun showOff() = println("i'm clickable") } interface Focusable { fun showOff() = println("i'm focusable") } class Button : Clickable, Focusable{ override fun click() = println("i was clicked") override fun showOff() { // overrid.. 2022. 6. 7.
3장. 함수 정의와 호출 다루는 내용 컬렉션, 문자열, 정규식 다루기 위한 함수 이름 붙인 인자, 디폴트 파라미터 값, 중위 호출 문법 확장 함수, 확장 프로퍼티를 사용해 자바 라이브러리 적용 최상위 및 로컬 함수와 프로퍼티를 사용해 코드 구조화 컬렉션 만들기 setOf vs hashSetOf setOf : immutable hash : mutable val setOfStrings: Set = setOf("A", "B", "C") val hashSetOfStrings: HashSet = hashSetOf("A", "B", "C") 컬렉션만들기 리스트 val list = arrayListOf(1, 7, 13) 맵 val map = hashMapOf(1 to "one", 7 to "seven") 모두 java.util 에서 지원하는.. 2022. 6. 7.
전략패턴과 상태패턴의 공통점과 차이점 헷갈려서 다시 정리 이전 정리 : https://jaehhh.tistory.com/58 전략패턴 vs 상태패턴 결론 전략패턴 : 한 번 인스턴스 생성하고 난 뒤, 상태가 거의 바뀌지 않을 때 사용 상태패턴 : 한 번 인스턴스 생성하고 난 뒤, 상태가 빈번하게 바뀔 때 사용 디자인패턴 (소프트웨어) 디자인 + ( jaehhh.tistory.com 공통점 인터페이스를 사용함으로써 Concrete Class를 캡슐화한다. Concrete Class : 구현클래스(추상클래스가 아닌 모든 클래스) 인터페이스(전략, 상태)만을 인자로 받는다. 차이점 표면상(코드상)으로는 다를게 별로 없다. 구분한 이유가 뭘까? 상태패턴 상태에 따른 로직 끝에 , setState(new State()) 를 호출함으로써 상태를 스스로.. 2022. 6. 6.
[chap14] MVC 4 : 날짜 값 변환, @PathVariable, 익셉션 처리 좀 치는 스프링 스터디 https://github.com/woowacourse-study/2022-gugu-spring-study GitHub - woowacourse-study/2022-gugu-spring-study: 레벨1 구구조의 제로가 이끄는 스프링 스터디 레벨1 구구조의 제로가 이끄는 스프링 스터디. Contribute to woowacourse-study/2022-gugu-spring-study development by creating an account on GitHub. github.com 1. 날짜값 사용하기 LocalDataTime : 날짜값 @DateTimeFormat : LocalDataTime으로 변환 @DataTimeFormat(pattern = "yyyyMMddHH") pr.. 2022. 6. 2.