BackEnd263 [Spring] 메시지, 국제화 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 스프링 메시지 소스 설정 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링은 기본적으로 메시지 관리 기능을 제공한다. 메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource를 스프링 빈으로 등록하면 되는데, MessageSource는 인터페이스다. 따라서 구현체인 ResourceBundleMessageSource 를 스프링 빈으로 등록하면 된다. 직접 등록하는 방식을 코드로 살펴보자. @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageS.. BackEnd/Spring MVC 2022. 3. 5. [JDBC] INSERT에 대한 자동 생성 키 값 검색하기 글의 목적> " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 글은 JDBC 를 통해 직접 SQL문을 연습하면서 데이터를 삽입하던 중, DBMS에서 auto_increment로 인해 데이터를 삽입할 때 자동으로 할당해주는 id값을 어떤 방식으로 반환받을지? 이에 대하여 작성한 글 입니다. 1. 자동 증가 특성 자동 증가 특성(auto_increment)은 JDBC 프로그램에서 자동 생성된 키를 말한다. 이 키값을 검색하여 사용하려면, 자동 생성된 키 값을 검색할 SQL을 삽입할 시기를 명시적으로 표시해야 한다. 이를 수행하기 위하여 Connection.prepareStatement, Statement.executeUpdate 또는 Statement.execute 메소드.. BackEnd/JDBC 2022. 3. 4. [Spring] 스프링 MVC - 기본 기능 - 3 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 9. HTTP 응답 - HTTP API, 메시지 바디에 직접 입력 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 HTTP API를 제공하는 경우에는 HTML이 아닌, 데아터를 메시지 바디에 담아서 JSON 형식으로 보낸다. HTML이나 뷰 템플릿을 사용해도 HTTP 응답 메시지 바디에 HTML 데이터가 담겨서 전달된다. 여기서 설명하는 내용은 정적 리소스나 뷰 템플릿을 거치지 않고, 직접 HTTP 응답 메시지를 전달하는 경우를 말한다. TEXT를 직접 반환하는 방식과 3가지, JSON을 반환하는 방식 2가지 를 살펴보자. @Slf4j @Controller.. BackEnd/Spring MVC 2022. 2. 28. [Spring] 스프링 MVC - 기본 기능 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. HTTP 요청 파라미터 - @ModelAttribute " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이전까지는 요청 파라미터를 받아서 필요한 인자를 추출하고, 그 값들을 객체를 만들어 넣어주는 방식을 취하였다. 다음과 같이 말이다. @RequestParam String username; @RequestParam int age; HelloData data = new HelloData(); data.setUsername(username); data.setAge(age); 스프링은 이 과정을 자동적으로 처리해주는 @ModelAttribute 기능을 지원.. BackEnd/Spring MVC 2022. 2. 27. [Spring] 스프링 MVC - 기본 기능 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 요청 매핑 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ● MappingController @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); /** * 기본 요청 * 둘다 허용 /hello-basic, /hello-basic/ * HTTP 메서드 모두 허용 GET, HEAD, POST, PUT, PATCH, DELETE */ @RequestMapping("/hello-basic") public String h.. BackEnd/Spring MVC 2022. 2. 26. [Spring] 스프링 MVC - 구조 이해 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 스프링 MVC 전체 구조 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 MVC도 프론트 컨트로러 패턴으로 구현되어있다. MVC의 프론트 컨트롤러가 바로 DisaptcherServlet 이다. ● DispacherServlet 서블릿 등록 DispacherServlet 도 부모 클래스에서 HttpServlet 을 상속 받아서 사용하고, 서블릿으로 동작한다. DispatcherServlet => FrameworkServlet => HttpServletBean => HttpServlet 스프링 부트는 DispacherServlet 을 서블릿으로 자.. BackEnd/Spring MVC 2022. 2. 25. [Refactoring] 전역 데이터 (Global Data) 백기선 님의 리팩터링 강의를 들으며 요약한 내용입니다. 5. 전역 데이터 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 전역 데이터(Java의 Public static 변수)는 아무 곳 에서나 변경될 수 있기 때문에 문제가 된다. 어떤 코드로 인하여 어디서 변경된것 인지? 한눈에 파악하기가 매우 어렵다. 이는 Class의 필드에서 또한 같은 문제가 발생할 수 있다. 이를 해결하는 한가지 방법으로, 변수를 캡슐화하여 사용하면 접근을 제어할 수 있고 어디서 사용하는지 파악하기 쉽다. 1. 변수 캡슐화하기(Encapsulate Variable) 데이터를 변경할 경우 이를 사용하는 모든 곳에 수정을 한 번에 다 해주어야 한다. 이에 반해, 메서드는 기존 메서드를 그대로 둔 상.. BackEnd/Refactoring 2022. 2. 24. [Java] Exception 기초 2종류의 Exception " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Unchecked Exception – RuntimeException을 상속 Runtime Time Exception 이라고도 부른다. Exception이 발생하는 메소드에서 throws 키워드를 추가하거나, try-catch로 Exception을 처리할 필요가 없다. Exception을 처리해 줘도 상관은 없다. 컴파일 시점에 Exception을 catch하는지 확인하지 않는다. 컴파일 시점에 Exception이 발생할 것인지의 여부를 판단할 수 없다. Checked Exception과 Unchecked Exception 선택 방법 호출하는 메소드가 Exception을 활용해 무엇인가 의미 있는 .. BackEnd/Java 2022. 2. 23. [Spring] MVC 프레임워크 만들기 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 4. 단순하고 실용적인 컨트롤러 - v4 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 지난 글에서 만들었던 v3 컨트롤러는 서블릿의 종속성을 제거하고, 뷰 경로의 중복을 제거하는 기능을 하여 잘 설계된 컨트롤러 이다. 하지만 실제 개발자가 컨트롤러 인터페이스를 구현할때마다 항상 ModelView객체를 생성하고 반환해야 하는 부분이 번거롭다. 좋은 프레임워크는 아키텍처도 중요하지만, 그와 더불어 실제 개발하는 개발자가 단순하고 편리하게 사용할 수 있어야 한다. 소위 실용성이 있어야 한다. 이번 V4는 좀더 개발자에게 실용적인 버전을 만들어 보자. 우선 그.. BackEnd/Spring MVC 2022. 2. 23. [Refactoring] 긴 매개변수 목록 (Long Parameter List) 백기선 님의 리팩터링 강의를 들으며 요약한 내용입니다. 4. 긴 매개변수 목록 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 어떤 함수에 매개변수가 많을수록 함수의 역할을 이해하기 어려워 진다. 과연 그 함수는 한가지 일만 하고있는것이 맞는가? 불필요한 매개변수는 없는가? 하나의 레코드로 뭉칠수 있는 매개변수 목록은 없는가? 어떤 매개변수를 다른 매개변수를 통해 알아낼 수 있다면 => “매개변수를 질의 함수로 바꾸기 (Replace Parameter with Query)”를 사용할 수 있다. 기존 자료구조에서 세부적인 데이터를 가져와서 여러 매개변수로 넘기는 대신, “객체 통째로 넘기기 (Preserve Whole Object)”를 사용할 수 있다. 일부 매개변수들이 대.. BackEnd/Refactoring 2022. 2. 23. [Refactoring] 긴 함수 (Long Function) 백기선 님의 리팩터링 강의를 들으며 요약한 내용입니다. 3. 긴 함수 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 긴함수와 잛은 함수의 기준은 몇줄일까? 이는 사람마다 다를 수 있다. 다만, 코드를 읽어 나갈때 "의도"가 한눈에 전달이 된다면 짧은 코드이고, "구현"에 해당하는 부분이 많아 한줄 한줄 읽어 나가야 한다면 긴 코드라고 할 수 있다. "과거에는" 작은 함수를 여러번 호출하면 더 많은 서브루틴의 호출로 인해 오버헤드가 있었지만, 요즘의 하드웨어는 너무나 성능이 좋기 때문에 고려하지 않아도 좋다. 사용해볼 리팩토링 기술 들로는~ 99%는 함수 추출하기로 해결 가능하다. 함수로 분리하면서 해당 함수로 전달해야 할 매개변수가 많아진다면 다음과 같은 리팩토링을 고려.. BackEnd/Refactoring 2022. 2. 22. [오브젝트] 메시지와 인터페이스 (7장) 조영호님의 오브젝트 라는 책을 읽으며, 공부 내용을 정리하는 용도로 간략하게 정리해 봅니다. 오브젝트: 코드로 이해하는 객체지향 설계 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라! 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두 번째 걸음은 객체를 wikibook.co.kr 객체지향 애플리케이션의 가장 중요한 재료는 클래스가 아니라 객체들이 주고 받는 메시지다. 클래스 사이의 정적인 관계에세 메시지 사이의 동적인 흐름으로 초점을 전환하는 것은 미숙함을 벗어나 숙련된 객체지향 설계자로 성장하기 위한 첫걸음 이다. 애플리케이션은 클래스로 구성되지만, 메시지를 통해서 정의 된다. 1. 협력과 메시지 " data-ke-type="html"> H.. BackEnd/OOP 2022. 2. 20. 이전 1 ··· 12 13 14 15 16 17 18 ··· 22 다음