분류 전체보기

[Part 1] 스프링 MVC #9
MVC(Model-View-Controller) mvc를 많이 들어는 보았을 것인데 왜 이걸 사용하느냐를 아는 것이 중요하다. Model 2 방식에 대한 이해 왜 Controller를 따로 분리했을까? URL처리 화면과 로직 분리 유지보수가 좋다는 근거가 무엇일까? 돈 - 변경 클라이언트의 변경에 비용 서비스 제공자 입장 비용 고객사의 모델 변경 DispatcherServlet은 web.xml에 있다. 여기서 알아야할 점을 간단히 설명하면 개발자가 만드는 것을 알면 편하다. Controller와 JSP(view)만 만든다. 나머지는 MVC가 만든다고 생각하면 된다. 스프링과 스프링 MVC 스프링 프레임워크 CORE + 여러 Sub 프로젝트들 별도로 결합새서 사용하기 때문에 설정 역시 별도로 처리가능 일반..

[Part 1] MyBatis 연동 #8
이번 MyBatis까지가 설정에 대한 내용이다. 빨리 끝내고 코딩을 하고 싶다... MyBatis는 Sql Mapping 프레임워크다. SQL과 Object간의 관계를 매핑해주는 역할 JDBC코드에 비해 처리하는 부분이 간결해지고, close 처리등이 지원 Spring에서의 사용 스프링은 MyBatis와의 연결을 위한 mybatis-spring 라이브러리를 이용해서 연동처리 JPA는 관계지향의 세계를 객체지향의 세계에 접목하는 느낌? 이고 MyBatis는 유틸리티의 성격이 강하다. MyBatis의 장점 : SQL을 그대로 사용가능하다. 단점 : JPA보다는 성능이 조금 떨어진다. https://mvnrepository.com/artifact/org.mybatis/mybatis/3.5.11 위의 사이트에 ..

[Part 1] HikariCP 설정 #7
우선 HikariCP가 무엇인지 왜 사용하는지 궁금한 분들이 있을 것이다. 간단하게 설명을 하자면 DB를 사용하려면 Connection을 맺고 끊는 작업이 필요하다. 이는 리소스의 소모가 많은 작업이다. 따라서 pooling이라는 기법을 통해서 객체를 미리 생성하고 빌려 쓰는 방식으로 이용해서 연결시간을 단축한다. spring boot 2.0이전에는 tomcat jdbc를 이용하였는데 이후에는 성능좋은 HikariCP를 이용하게 되었다. https://mvnrepository.com/artifact/com.zaxxer/HikariCP 위에 링크에 접속하여 3.4.5버전을 다운받아보자. 위의 dependency를 복사하여 porm.xml에 넣어줄 것이다. 추가를 하면 알아서 다운로드를 진행해준다. 그리고 ..

[Part 1] DB연결하기 #6
Database설치부터 시작해서 JDBC연결확인 그리고 Connection Pool(Hikari CP) 설정까지 이번 글에서 다루어 보겠다. DB는 Oracle 11g express edition로 진행할테니 다운부터 해보겠다. XE Prior Release Archive Getting Started: Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle ..

[Part 1] 의존성 주입 실습(추가설명) #5
저번 글에서 궁금한 점이나 추가 설명이 필요한 부분들을 다룰 것이다. Spring은 객체지향을 하는 프레임워크다. 웹을 하는 프레임워크는 아니다. 웹으로 확장이 가능한 것이다. 그래서 servlet-context.xml은 웹과 관련된 설정을 하고 root-context.xml은 객체지향을 관리하는 xml로 나누어 관리하는 것이다. xml을 둘로 나눈 이유다. 만약 에러가 나면 어디부터 확인해야하는가? 바로 첫번째는 컴포넌트 스캔이 되어있는지 확인을 하는 것이다. 이것이 무슨 이야기인지 확인해보자. SampleHotel이라는 클래스를 만들어서 확인해보겠다. package org.zero.sample; import org.springframework.stereotype.Component; @Component..

[Part 1] 의존성 주입 실습 #4
옛날에는 개발자가 직접 코드를 만들어서 new를 하고 의존성을 서로 연결을 시켜주고 이런 일을 했는데 스프링 프레임 워크는 그럴 필요 없고 내가 선언을 하면 스프링이 객체를 넣어준다 라고 생각하고서 실습으로 자세히 알아볼 것이다. 저번 글에서 롬복을 세팅하였고 그 롬복을 이용하여 시작할 것이다. 우선 패키지와 클래스를 만든다. 그 다음 어노테이션을 입력하면 자동으로 임포트가 된다. package org.zero.sample; import org.springframework.stereotype.Component; @Component public class Chef { } 그리고 context 들어간다. 그 후 이렇게 집어넣는다 자 그러면 Chef라는 클래스에서 나온 객체는 관리가 된다. 그리고 롬복 설정을..

[Part 1] 프로젝트 생성 #3
이어서 롬복을 이야기해보겠다. 롬복은 컴파일시에 getter/setter, 생성자, toString()등을 자동으로 생성해준다 굉장히 강력하다!! 코드 컴파일/IDE 지원 이제 다운로드 해보자 실행하던 프로젝트를 끄고 Download projectlombok.org 위의 링크로 들어가 다운로드를 클릭한다. 그리고 다운을 했다면 디렉토리에 잘 들어있을겁니다 ㅎㅎ 이제 밑의 사이트에 들어갑니다. Maven projectlombok.org 드래그 되어있는 코드를 복사하여 porm.xml dependencies부분에 집어넣습니다. 만약 잘 세이브하였다면 이렇게 롬복 파일이 자동으로 다운이 될 것이다. 그렇다면 롬복이 다운되었을때와 아닐때의 차이점을 보겠다. 서버를 실행시켜준 후 - 롬복 사용전 이렇게 프린트 한..

[Part 1] 프로젝트 생성 #2
만약 환경설정이 완료되신 분은 여기 보이는 경로에서 STS를 실행시킨다. 그 후 spring legacy project클릭 spring mvc프로젝트를 생성하고 org.zero.controller 라고 적어준다. 이때 주의할 점은 대문자가 절대절대 네버 들어가면 안된다. 면접을 떨어지는 지름길이다.!! 그리고 finish를 누른다면 프로젝트가 생성이 되고 오른쪽하단에서 jar파일들이 자동으로 다운로드 된다. 다 다운로드가 되었다면 1.6이었던 버전을 1.8로 고쳐준 후 update project를 누르고 창이 나오면 ok를 누르면 이렇게 1.8버전으로 변경이 되는 것을 확인할 수 있다. 이번에는 프레임워크 버전을 5.2.7로 바꾸어주고 저장하면 알아서 빌드를 한다. home.jsp는 깃허브에 올라갈 때에..

[Part 1] 환경설정 #1
2학년 2학기에 몰입형SW 교육과정을 수료하면서 스프링을 배웠었지만 프로젝트에 몰두하게 되면서 소홀하게 되었다. 그래서 방학동안에 복학하기 전에 스프링을 다시한번 공부를 해야겠다고 생각하여 시작하게 되었다. 서론이 길었다. 바로 시작하겠다. 스프링을 시작하기에 앞서서 IntelliJ eclipse 등등 많은 툴 중에서 나는 STS(Spring Tool Suite) 라는 툴을 사용하기로 결정하였다. 이유는 스프링을 사용하면서 설정할 것이 적기 때문에 편리하다고 생각했다. JDK 11버전 STS 3.9.14 Tomcat 9버전 이렇게 3가지를 세팅하고 시작한다. sts를 3버전을 쓰는 이유는 spring legacy project를 하기 위함이다. 우선 모든 파일은 압축해제를 c드라이브 바로 아래에 하길 바..

[Flask] 웹 스크래핑 #9
자 마지막 글이 될 것이다. 정말 기쁘다 이렇게 쉽게 스크래핑이 가능하다니... 그럼 이어서 가보자!! 사용자가 keyword를 아무것도 작성하지 않으면 None이 뜬다. None이 뜰때 redirect방식으로 홈으로 이동시키자! 우선 import에 redirect를 추가할 것이고 if문으로 return시켜주자 from flask import Flask, render_template, request, redirect if keyword == None: return redirect("/") 이제 이 가지고 싶은 사람도 있을 것이다. 그래서 파일을 저장할 것이다. 그렇다면 로직은 ? 사용자가 keyword를 입력하게되면 => db에 저장한 후 => 그 파일을 다운로드하게끔! 정말 간단하다 우선 export라..