본문 바로가기

전체 글322

Spring DI(Dependency Injection) 의존성 주입(DI Dependency Injection)은 개체가 생성자 인수, 팩터리 메소드에 대한 인수 또는 개체 인스턴스가 생성된 후 개체 인스턴스에 설정된 속성을 통해서만 의존성(함께 작동하는 다른개체)을 정의하는 프로세스이다. 더보기 의존성이란? 한 객체가 다른 객체를 사용하는 상황을 말하며, 일반적으로 한 객체가 다른 객체를 생성하거나 직접 의존하는 경우를 말한다. 예를 들어, 클래스 A가 클래스 B를 사용한다면 A는 B에 대한 의존성을 갖게 된다. DI는 의존성을 외부에서 제공받을 것을 말하며, 객체가 필요로 하는 다른 객체를 직접 생성하지 않고, 외부에서 생성된 객체를 주입받아 사용하는 방식이다. 이를 통해 객체 간의 결합도를 낮추고 유연하게 하며 효율적인 코드를 작성할 수 있다. 코드가 .. 2023. 6. 19.
JAVA Jstl JSTL은 JSP(JavaServer Pages)에서 자주 사용되는 코드를 더 간결하고 유지보수하기 쉽도록 만들어진 태그 라이브러리이다. JSTL은 간결한 코드를 작성할 수 있다. JSP페이지에서 스크립트릿 코드를 최소화하고, 태그 기반의 표현을 사용하여 작성할 수 있다. 그로 인해 코드의 가독성이 향상되고, JSP개발자들은 비지니스 로직에 집중이 가능하며, 다양한 기능을 제공하는 태그 라이브러리로 구성되어 있다. 이를 통해 데이터의 표현과 조작, 조건문, 반복문 등과 같은 공통 작업을 간편하게 처리할 수 있다. 이는 코드의 재사용성을 높여 개발시간을 단축시켜주며, EL과의 완벽한 통합으로 JSTL과 함께 사용하면 더욱더 동적인 데이터 처리를 가능하게 해준다. https://titlejjk.tistory.. 2023. 6. 19.
MyBatis MyBatis는 자바 기반의 오픈 소스 퍼시스턴스 프레임워크이다. 데이터베이스와의 상호작용을 단순화하여 개발자가 SQL쿼리를 사용하여 데이터베이스 작업을 수행할 수 있도록 도와준다. MyBatis는 데이터베이스와의 상호작용을 처리하는 데 필요한 코드작성에 중점을 두고 있다, MyBatis는 개발자에게 SQL 매핑을 제공하여 SQL쿼리와 데이터베이스 테이블간의 매핑을 정의해준다. 이덕에 개발자는 복잡한 JDBC코드를 작성하지 않고 데이터베이스 작업을 수행할 수 있다. XML또는 어노테이션 기반의 매핑파일을 사용하여 정의한다. 이를 통해 개발자는 SQL쿼리와 자바 객체간의 매핑을 명시적으로 지정할수 있으며 SqlSession이라는 MyBatis의 핵심인터페이스로 데이터베이스와의 상호작용을 수행한다. SqlS.. 2023. 6. 19.
20230619 수업내용🙌🙌🙌 다시 Spirng 수업 새로운 프로젝트를 만들어주고 먼저 Oracle DB를 이클립스로 연결해보겠다. 이클립스 window에 Eclipse Marketplace를 열고 mybasit를 검색해주고 제일 상단을 install해준다. 여기에 다음과 같은 코드를 추가해주었다. Spring 프레임워크를 사용하는 근본적인 이유는 프로젝트의 규모가 큰 경우에 유지 보수를 편하게 하기 위해서 사용한다. 클래스(객체들)들 간에 의존 관계가 느슨해야 유지 보수가 편하다. 어떠헥 해야 의존 관계가 느슨해 지는걸까? 필요한 핵심의존 객체를 직접 생성하지 않고 주입 받아서 사용한다. 객체의 생성과 관리를 spring프레임워크에 맡긴다. 인터페이스 type을 적극 활용한다. 객체 생성과 관리를 Spring에게 맡긴다. 이렇게 하.. 2023. 6. 19.
Spring Data JPA를 이용해 다양한 쿼리 작성하기 User관련 기능에 생성/ 조회/ 수정 기능을 SQL문을 사용하지 않고 사용되도록 해보았는데 이번에는 삭제 기능을 Spring Data JPA로 변경해보겠다. 저장하거나 업데이트하거나 전체조회를 하거나 기본적인 기능외에 다양한 기능도 만들어 보겠다. 삭제 기능같은 경우에는 User의 이름을 기준으로 삭제를 하기로 했었는데 이 User의 name이 있는지 없는지 조회를 한 후에 삭제를 하기로 했었다. 먼저 함수먼저 작성해보겠다. public void deleteUser(String name){ userRepository.findByName } name으로 찾는다고 하긴 했지만 name으로 찾을 수 있는 방법은 아직까지 없다. SQL로는 SELECT * FROM user WHERE name = ? 이걸 어떻.. 2023. 6. 18.
@RequestMapping 이것도 오늘 수업중 중요하다고 느낀 어노테이션중하나..이것도 찾아보았다.. @RequestMapping은 스프링 프레임워크에서 사용되는 어노테이션이다. 그 기능은 클라이언의 요청을 특정 메소드 또는 컨트롤러 클래스와 매핑(mapping)시키기 위해 사용된다. 쉽게 말하자면 어떤 URL요청이 들어왔을 때 어떤 메소드가 실행되어야 하는지 지정해주는 역할을 한다. @RequestMapping은 주로 Spring MVC에서 사용되며, 컨트롤러 클래스 또는 메소드에 적용된다. 컨트롤러 클래스 수준에서 @RequestMapping을 사용하면 해당 컨트롤러의 모든 요청 처리 메소드에 대한 기본 URL을 설정할 수 있다. 메소드 수준에서 @RequestMapping을 사용하면 해당 메소드가 처리할 URL을 지정할 수 .. 2023. 6. 16.
@ResponseBody Spring을 강사님께 Spring을 배우는 중에 @ResponseBody의 기능에 대해 배우게 되었다. JSON의 문자열을 여러가지 방법을 통해 가져올 수 있는 기능중 하나라고 설명해 주셨는데 더 자세히 알고싶어서 구글링해 검색해 보았다. @ResponseBody는 스프링 프레임워크에서 사용되는 어노테이션중 하나로, 웹 응답의 데이터를 HTTP응답 본문에 직접 쓰기 위해 사용된다. 즉, 해당 어노테이션을 사용하면 메소드의 반환 값이 웹 응답으로 전송되어 클라이언트(사용자)에게 반환이 된다. @ResponseBody어노테이션은 주로 스프림 MVC에서 사용되며, 컨트롤러의 메소드에 적용된다. 적용된 메소드는 일반적으로 JSON, XML, 텍스트 또는 기타 형식의 데이터를 반환한다. 클라이언트가 HTTP 요.. 2023. 6. 16.
List<Map>써보기 스프링 수업도중 JSON문자열을 받기위한 수업중에 List까지 강사님이 해보라고 하셨다.우선. @ResponseBody @RequestMapping("/test/json6") public List json6(){ List list = new ArrayList(); } 여기까지는 완성해보았는데 정답부터 말하자면 @ResponseBody @RequestMapping("/test/json6") public List json6(){ List list = new ArrayList(); Map map1 = new HashMap(); map1.put("num", 1); map1.put("name", "김구라"); map1.put("addr", 1); Map map2 = new HashMap(); map2.put("n.. 2023. 6. 16.
DispatcherServlet 스프링 프레임워크에서 DispatcherServlet은 웹 애플리케이션의 핵심 컴포넌트 중 하나이다. 클라이언트로부터 요청을 받고, 해당 요청을 처리하기 위해 적절한 핸들러로 라우팅하는 역할을 담당한다. DispatcherServlet의 동작을 이해하기 위해 몇가지 개념을 알아보자면 DispatcherServlet는 웹 애플리케이션 컨텍스트(Web Application Context)에 의존한다. 웹 애플리케이션 컨텍스트는 스프링의 인터페이스를 구현한 객체로, 스프링 컨테이너에 대한 참조를 갖고 있다. 스프링 빈, 설정 정보, 컴포넌트 스캔 등과 같은 웹 애플리케이션에 필요한 리소스를 로드하고 관리한다. HandlerMapping을 사용하여 클라이언트 요청을 처리할 핸들러를 찾는다. HandlerMapp.. 2023. 6. 16.