[Spring] JdbcTemplate
Framework/Spring2024. 6. 16. 16:22[Spring] JdbcTemplate

JDBCJDBC가 무엇인지 알기위해서는 JDBC가 어떤이유로 탄생했는지에 대해 먼저 알아보자웹 서비스의 동작방식사용자인 클라이언트가 웹 브라우저를 통해 데이터를 사용하기위해 어떤 요청을 보내면 애플리케이션 서버는 요청한 데이터를 데이터베이스로부터 꺼내어 클라이언트에게 응답하는 방식이 가장 기초적인 웹 서비스의 기본동작 방식이다.이 때 애플리케이션 서버가 데이터베이스로부터 데이터를 받기위해 아래 세 가지 동작이 필요하다Connection: 서버와 DB를 연결, 이 때 네트워크 통신은 TCP/IP를 사용한다SQL전달: 원하는 데이터를 받기위해 DB가 이해할 수 있는 SQL을 전달한다.응답: DB에서 요청받은 SQL을 수행하여 결과로 나온 데이터를 애플리케이션 서버에 전달한다여기서 문제가 생기는데,Connec..

Spring - 메시지 기능으로 HTML하드코딩 제거하기
Framework/Spring2024. 4. 23. 20:46Spring - 메시지 기능으로 HTML하드코딩 제거하기

메시지 기능이란? 만약 아래 HTML코드에서 label태그에 명시되어있는 '상품명', '가격', '수량'등을 수정해야한다면 하나씩 일일이 파일을 찾아가며 변경하거나 IDE의 replace기능사용해서 수정해야 할 것이다. 이렇게 수정할 경우 너무 번거로울뿐만아니라 repalce방식으로 수정을 할 경우 잘 못 수정되는 경우도있을 것 이다. 상품명 가격 수량 이런 불편함을 해결해주기위해 '메시지'라는 기능이 사용된다. Spring에서는 이 메시지기능을 어떻게 제공하고 어떻게 사용하게하는지 알아보자 HTTP 메시지에 담긴 accept-language헤더의 값을 서버에서 인지하고 해당 국가에 맞는 메시지 언어를 제공한다. 국가에 맞는 언어 메시지를 제공하기위해 아래와 같이 properties파일을 생성한다. 이 ..

Spring MVC - @RequestMapping
Framework/Spring2024. 4. 16. 01:25Spring MVC - @RequestMapping

@RequestMapping은 어떤 역할을 수행하고 어떤 기능을 가지고 있는지 알아보자 @RequestMapping @RequestMapping은 단순하게 설명하자면 영단어 뜻 그대로 요청을 매핑해주는 역할을 수행하지만 이 어노테이션이 어떻게 동작하는지 깊게는 알 수 없어도 조금만 들여다보자. 아래 글에서도 다룬적이 있기때문에 아래글을 보는 것을 추천한다. Spring MVC - Dispatcher Servlet과 View Resolver Spring MVC의 구조를 깊이 있게 알기위해서는 기존의 MVC패턴의 전체 구조를 알고 이해하는 것이 도움이 될 것이다. Spring MVC의 범위는 매우크고 기능 또한 매우 많기때문에 기본 베이스 없이 Spring MV lee-dev-log.tistory.com M..

Spring MVC - 프레임워크 사용 전과 후 & @Controller
Framework/Spring2024. 4. 15. 22:17Spring MVC - 프레임워크 사용 전과 후 & @Controller

Spring MVC - Dispatcher Servlet과 View Resolver Spring MVC의 구조를 깊이 있게 알기위해서는 기존의 MVC패턴의 전체 구조를 알고 이해하는 것이 도움이 될 것이다. Spring MVC의 범위는 매우크고 기능 또한 매우 많기때문에 기본 베이스 없이 Spring MV lee-dev-log.tistory.com MVC패턴과 변천사 - 핸들러와 핸들러어댑터 패턴 적용 이전 포스팅에서는 Model개념을 적용하여 request.serAttribute로 수행하던 파라미터 값을 가져오는 것을 Model을 통해 해결함으로 Servlet에 종속성을 제거하였다. 또 뷰 리졸버를 사용해서 각 컨트롤러 lee-dev-log.tistory.com 이전 글들에서 사용했던 간단한 회원관리 ..

Spring MVC - Dispatcher Servlet과 View Resolver
Framework/Spring2024. 4. 15. 17:55Spring MVC - Dispatcher Servlet과 View Resolver

Spring MVC의 구조를 깊이 있게 알기위해서는 기존의 MVC패턴의 전체 구조를 알고 이해하는 것이 도움이 될 것이다. Spring MVC의 범위는 매우크고 기능 또한 매우 많기때문에 기본 베이스 없이 Spring MVC를 이해하려하면 매우 어려울 것이다. MVC패턴과 변천사 - 핸들러와 핸들러어댑터 패턴 적용 이전 포스팅에서는 Model개념을 적용하여 request.serAttribute로 수행하던 파라미터 값을 가져오는 것을 Model을 통해 해결함으로 Servlet에 종속성을 제거하였다. 또 뷰 리졸버를 사용해서 각 컨트롤러 lee-dev-log.tistory.com Dispatcher Servlet Spring MVC에서도 프론트 컨트롤러 패턴이 사용되어 프론트 컨트롤러에서 뷰 리졸버 기능, ..

스프링 컨테이너와 싱글톤
Framework/Spring2024. 3. 23. 21:00스프링 컨테이너와 싱글톤

스프링 컨테이너란 순수 Java만으로는 객체지향 설계원칙인 SOLID중 OCP(개방-폐쇄 원칙)와 DIP(의존관계 역전 원칙)을 지킬 수가 없게된다. OCP와 DIP를 지키기 위해서는 누군가가 객체에 의존성을 주입해주어야 하는데 그 누군가가 바로 스프링 컨테이너이다. 스프링 컨테이너는 객체를 Component(Bean)으로 만들어 직접 관리하며 객체에 의존성이 필요한 클래스에게 직접 의존성을 주입해준다 이것이 바로 DI(Dependency Injection)이다. 스프링 컨테이너를 이용하여 OCP, DIP를 완전하게 지키며 비로서 완벽한 객체지향 설계원칙을 지키게 된다. 객체지향 설계원칙을 지켜 기획, 요구사항에 변경이 발생하더라도 클라이언트 코드의 수정없이 오로지 스프링컨테이너 설정 코드(@Config..

객체지향 설계를 위한 5가지 원칙 (SOLID)
Framework/Spring2024. 3. 20. 16:32객체지향 설계를 위한 5가지 원칙 (SOLID)

SOLID SOLID란 Clean Code의 저자로 유명한 로버트 마틴이 정의한 좋은 객체지향 설계의 5가지 원칙을 정리한 것이다. - SRP: 단일 책임 원칙 - OCP: 개방-폐쇄 원칙 - LSP: 리스코프 치환원칙 - ISP: 인터페이스 분리 원칙 - DIP: 의존관계 역전 원칙 5가지의 원칙을 하나씩 알아가보도록 하자 단일 책임원칙 - SRP(Single Responsibility Principle) SRP는 한 클래스는 하나의 책임만 가져야 한다는 것이다. 이 말만으로는 SRP가 무엇인지 와닿지 않는데, 예를 들어서 설명해본다면 어떤 프로젝트에서 UI하나를 고쳤는데 그 안에 SQL, 로직 등 여러가지의 것들을 같이 변경해야한다면 그것은 SRP원칙이 잘 이루어지지 않은 코드이다. 즉, SRP가 잘..

스프링이란? with 객체지향
Framework/Spring2024. 3. 20. 15:06스프링이란? with 객체지향

스프링등장의 배경 스프링이던 어떤 기술이던 해당 기술의 핵심을 알고, 그 핵심을 이해해야한다 예를 들어서 어떤 프레임워크가 나왔다면 이 프레임워크의 등장 배경에는 무엇이 있었는가? 어떤 점이 불편해서 기존의 것을 사용하지않고 새로운 기술을 탄생하게 했는가? 등의 궁금증을 품다보면 이 기술의 등장 원인을 알게 되고 그 기술의 핵심을 알게되는 것이다. 이러한 과정으로 기술의 핵심을 알고 제대로 이해해야 비로소 이 기술을 옳바르게 사용하고 있다고 할 수 있는것이다. 그렇지 않다면 그냥 API의 사용법만 알고 사용하는 것에 그친다 본론으로 돌아와 스프링은 Java언어 기반의 프레임워크로 Java언어의 특징인 객체지향 특징을 극대화 시켜주는 프레임워크이다 즉, 좋은 객체지향 어플리케이션을 개발할 수 있도록 도와주..

image