본문 바로가기

Study146

[Spring Boot With Kotlin] Spring Interceptor 로그인을 수행한 이후에만 사용 가능한 기능들이 있을 경우 로그인이 정상적으로 이뤄졌는지 확인하는 것은 세션을 통해 간단히 확인할 수 있습니다. 그러나 해당 기능들과 매핑된 모든 메서드에서 로그인 여부를 확인하는 것은 코드도 길어질 뿐만 아니라 매우 귀찮은 작업이라고 할 수 있습니다. 만약 이와 같이 특정 경로에 접근하기 전에 확인해야 될 내용(ex: 권한 확인, 로그 수집)이 있다면 Spring Interceptor를 이용하여 쉽게 확인할 수 있습니다. Spring Interceptor는 "Request가 처리되기 이전"과 "Request가 처리된 이후" 그리고 "모든 요청이 마무리 된 이후"에 필요한 작업을 정의하여 처리할 수 있습니다. Method 설명 preHandle Request가 처리되기 이전.. 2022. 7. 25.
[Spring Boot] Bean 이해하기 (With Spring Container) Bean을 이해하기 위해서는 먼저 Spring Container(또는 IoC Container 라고 불림)에 대해 알아야 합니다. Spring Container는 Spring Framework로써 객체를 생성하고 객체와 의존성을 관리하는 컨테이너 입니다. Spring에서는 Bean 객체를 관리하는 BeanFactory와 해당 컨테이너를 상속하여 보다 다양한 기능을 지원하는 ApplicationContext가 이 역할을 담당하고 있습니다. 그렇다면 Bean이란 무엇일까요? Bean은 Spring Container에 의해 생성된 객체를 의미합니다. Bean으로 등록된 객체는 ApplicationContext.getBean() 메서드를 이용하여 어디서나 해당 객체를 사용할 수 있습니다. Spring Conta.. 2022. 7. 25.
[Spring Boot With Kotlin] RESTFul API, JSON 데이터 처리하기 Data Entity package com.hacksms.AssetsManaged.Model import java.time.LocalDate import javax.persistence.Column import javax.persistence.Entity import javax.persistence.GeneratedValue import javax.persistence.Id import javax.persistence.ManyToOne @Entity class Users( @Column(nullable=false, unique=true) var loginId: String, var password: String, var permission: Int, // 1 is admin user, 2 is norma.. 2022. 7. 24.
[Spring Boot With Kotlin] 오류 별 해결 방안 정리 오류1 상황 Entity를 작성 후 정상적으로 동작하는지 확인하기 위해 Test 코드를 작성하였는데 실행 시 해당 에러가 발생하였음. 오류 문구 Execution failed for task ':test'. There were failing tests. See the report at: file:///{프로젝트 경로}/index.html 해결 방안 1. "File > Settigns > Build, Execution, Deployment > Build Tools > Gradle" 메뉴로 이동한 뒤, "Run tests: using" 옵션을 "IntelliJ IDEA"로 선택 후 적용 2022. 7. 24.
[Spring Boot] Spring Boot에 사용되는 모듈에 대해서 알아보자 Spring Boot Devtools Devtools는 Spring Boot에서 제공하는 개발 편의를 위한 모듈이며, 개발 편의를 위해 제공되는 기능은 크게 5가지 입니다. Property Defaults Automatic Restart Live Reload Globlas Settings Remote Applications Property Defaults 스프링 부트에 지원하는 여러 라이브러리(ex: thymeleaf Template)의 경우 기본적으로 캐싱 기능을 제공하지만, 개발 과정에서는 개발된 내용이 바로 적용되지 않아 비효율적일 수 있습니다. spring-boot-devtools는 기본적으로 이러한 캐싱 옵션을 비활성화함으로써 개발의 편의성을 높여줍니다. 이렇게 제공되는 기본 속성들의 값은 다음.. 2022. 7. 24.
[Spring Boot With Kotlin] Web Server Tutorial (Feat. Intellij) 가장 먼저 jetbrains에서 Intellij IDEA를 설치합니다. 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com 상용 버전의 경우 Spring을 바로 설정할 수 있지만 커뮤니티 버전의 경우 https://start.spring.io/ 사이트에 접속하여 Spring 프로젝트를 생성해야만 합니다. 저는 Spring Boot와 Kotlin을 이용하여 웹을 개발할 예정이기 때문에 아래와 같이 설정한 뒤, GENERATE를 이용하여 압축 파일로 저장하였습니다. Project : Gradle Project Language : Kotlin Spring Boot : 2.7.2 Java : 17 Dependencies : Spring.. 2022. 7. 23.
JSP(Java Server page)와 Java Servlet Java Servlet Java를 사용하여 웹 기반의 요청에 대한 동적인 처리가 가능한 Server Side Program으로 Java 코드 안에 HTML 코드를 넣어 동적인 웹 페이지를 생성함 JSP(Java Server Page) Java를 기반으로 하는 Sever Side Script 언어로 HTML 코드 안에 Java 코드를 넣어 동적인 웹 페이지를 생성함 JSP의 내부 동작 과정 1. Client에서 hello.jsp 파일을 요청함 2. JSP Container가 hello.jsp 파일을 읽어옴 3. JSP Container가 변환(Gernerate) 과정을 통해 Servlet 파일(helloServlet.java)을 생성함 4. 생성된 Servlet 파일은 .class 파일(helloServl.. 2022. 7. 13.
Django란? Django는 2005년부터 시작된 Python의 오픈 소스 웹 프레임워크이자 풀 스택 프레임워크 입니다. 웹 프레임워크는 크게 풀 스택 프레임워크와 마이크로 프레임워크로 나눠지는데, 풀 스택 프레임워크는 "웹 개발에 필요한 모든 요소를 갖춘 프레임워크"이며, 마이크로 프레임워크는 "웹 개발에 필요한 일부 요소가 구현되어 있지 않은 프레임워크" 입니다. ※ Python 기반의 마이크로 프레임워크 중 대표적인 것은 Flask가 있으며, 일부 요소가 구현되어 있지 않기 때문에 반대로 개발자의 능력과 목적에 맞춰 커스텀이 가능한 부분이 있습니다. 또한, Django의 경우 ORM(Object Relational Mapping)을 기본적으로 제공하고 있는데요. ORM이란 객체와 관계형 데이터베이스의 데이터를 자.. 2022. 7. 10.
PHP에서 TCPDF로 HTML 화면을 PDF로 변환하기 TCPDF 설치 명령어 cd /usr/share/php/ wget https://jaist.dl.sourceforge.net/project/tcpdf/tcpdf_6_3_2.zip --no-check-certificate unzip tcpdf_6_3_2.zip 나눔 폰트 설치 명령어 cd /usr/share/fonts/ wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip unzip NanumFont_TTF_ALL.zip -d NanumFont cd /usr/share/php/tcpdf/tools/ ls /usr/share/fonts/NanumFont/* ls /usr/share/fonts/NanumFont/* | xargs -.. 2022. 5. 18.