스프링 컨트롤러 [Spring, RequestMapping]
코딩/스프링 [JAVA] 2021. 1. 14. 00:45

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 컨트롤러 컨트롤러는 요청작업 후 뷰로 데이터 전달하는 역할을 한다. @Controller로 클래스 생성 -> @RequestMapping으로 경로 지정 -> 처리 메소드 구현 -> 뷰 이름 리턴 한번 컨트롤러를 만들어보자. HomeController의 위치 옆에 SampleController.java를 만들었다. @Controller public class SampleController { @RequestMapping("/sample") //요청 경로 public String samplecontent(Model model) { //데이터 넣기 model.addAttribute("id..

Spring MVC [Controller, servlet-context, eclipse]
코딩/스프링 [JAVA] 2021. 1. 12. 03:48

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 웹 애플리케이션 제작에 사용되는 스프링 MVC는 다음과 같다. Client에서 요청 -> DispatcherServlet에서 최초로 요청을 받는다. 이제 이 DispatcherServlet에서 요청을 Controller로 보내고, (중간에 HandlerMapping, HandlerAdapter도 들린다.) Controller에서는 처리하여 다시 DispatcherServlet으로 응답한다. 그럼 이제 다시 이 DispatcherServlet에서 ViewResolver에 보내여 사용자에게 View가 보이게 된다. MVC에서 (Model, View, Controller) Model은 이..

AOP (Aspect Oriented Programming) [Spring]
코딩/스프링 [JAVA] 2021. 1. 11. 01:43

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 자바는 객체 지향 프로그래밍, OOP (Object Oriented Programing) AOP는 Aspect, 관점 지향. 시점을 중요시 여긴다는 뜻이다. (oop와 반대되는 말이 아님) 프로그래밍을 하면서 공통적인 기능 (ex) Log) 등이 많이 있는데, 상속을 통해 모든 모듈에 적용하는데, 근데 자바에서는 다중 상속이 불가능. 그리고 구현에 핵심 기능과 공통 기능이 섞이면 효율성이 떨어진다. 여기서 AOP가 등장한다. 공통 기능과 핵심 기능을 분리해놓고, 핵심 기능에 적용하는 공통 기능을 적용하는 방식이다. [용어] Aspect : 공통 기능 Advice : Aspect의 기..

외벽점검 (프로그래머스 2020 KAKAO BLIND RECURITMENT)
알고리즘/문제풀이 2021. 1. 10. 03:26

문제 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 programmers.co.kr 문제 설명 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은..

외부 환경 파일 설정 (Environment, Property)[Spring]
코딩/스프링 [JAVA] 2021. 1. 8. 02:41

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 외부에 따로 저장해놓은 세팅 (ID, PW, DB설정 등등)을 스프링 내에서 사용할 일이 종종 생긴다고 한다. 외부 파일의 내용을 Spring으로 가져와 사용하는 방법을 살펴보자. (주로 초기에 설정해야 할 때) 외부 파일로 환경설정 하는 법 (Environment 사용) 우선 대략적인 방법은 다음과 같다. Context로부터 -> Environment (환경설정)객체를 생성한다. 이제 이 Environment 객체 내에는 PropertySource라는 객체 형식으로 사용 할 정보들이 존재한다. 이 PropertySource 객체들을 빼서 사용하면 된다. 일단 properties라고..

컨테이너 생명 주기 [Spring]
코딩/스프링 [JAVA] 2021. 1. 8. 02:30

본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. 컨테이너 생명 주기 스프링에서 컨테이너의 생명 주기는 다음과 같다. [생성-> 설정 -> 사용 -> 종료] public static void main(Strig[] args){ //스프링 컨테이너 생성 GenericXmlApplicationContext ex = new GenericXmlApplicationContext(); //컨테이너 설정 ex.load("classpath:XML경로"); ex.refresh(); //컨테이너 사용 Example example = ex.getBean("Example",Example.class); /*사용하기 . . .*/ //컨테이너 종료 ex.c..

DI (Dependency Injection) Spring에서 적용하기
코딩/스프링 [JAVA] 2021. 1. 7. 02:34

DI (Dependency Injection) 스프링에 들어가기 앞서, 스프링의 기본 원리인 DI에 대해 살펴보자. 보통 클래스로부터 객체 생성, 이때 이 객체(X)가 여러 객체(Y, Z)에 의존관계가 있을때 (Y, Z 객체를 사용할 때) 1) 객체 X가 필요할 때 직접 Y, Z를 생성 2) 외부에서 객체 Y, Z를 생성하고 X객체에서 사용 이때 2번처럼 외부에서 객체를 생성해 넣는 것을 주입(Injection)이라 한다. 따라서 의존성을 주입한다 해서 DI(Dependency Injection)인 것이다. 이런 DI의 장점은 다음과 같다 재사용성 증가 코드 읽기 쉬움, 단순화 더 많은 테스트 코드 종속성 감소 (엮인 관계가 적음 -> 변경시 조금만 바꾸면 됨) [활용예시 1. setter] class ..

VS Code로 Spring 시작하기
코딩/스프링 [JAVA] 2021. 1. 2. 02:24

vs code와 JDK, tomcat은 따로 설치된 상태에서 시작하도록 하자 (밑에 jdk 설치법 있습니다!) 플러그인 설치하기 EXTENSIONS에서 JAVA Extension Pack,. Spring Boot Extension Pack, Tomcat을 받아준다. Spring에서 빌드 도구를 Maven, Gradle로 선택할 수 있는데, 대부분 Maven 형태로 (이제는 다 Gradle이다) Maven은 Java용 프로젝트 관리도구로 xml 설정파일을 사용하여 사용할 수 있다. 이클립스에서는 Maven이 기본으로 내장되어 있지만, Vs Code에는 없으므로 로컬에 다운받아야 한다. (이때 Java Extension Pack에 있는 Maven은 설치된 Maven와의 연동을 위한 것이다.) Gradle은 ..

후보키 (프로그래머스) [JAVA] 2019 KAKAO BLIND RECRUITMENT
알고리즘/문제풀이 2020. 12. 31. 11:58

문제 문제 링크 : programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다. 그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중..

단어 변환 (프로그래머스) [JAVA]
알고리즘/문제풀이 2020. 12. 27. 02:10

문제 문제 링크 : programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 ..