본문 바로가기

전체 글

(35)
[Java] Timeleaf 타임리프 [1] 타임리프란? Thymeleaf is a Java template engine for processing and creating HTML, XML, JavaScript, CSS, and text. In this article, we will discuss how to use Thymeleaf with Spring along with some basic use cases in the view layer of a Spring MVC application. 즉, html, javascript를 생성하고 처리하기 위한 템플릿 엔진이다.
[javascript] var, let, const 차이점 var 는 function-scoped 의 활동 영역을 가지고있고, let 과 const 는 block-scoped의 영역을 가진다. [1] function-scoped(var) function 내부의 영역을 scope로 잡고있기 때문에 var로 선언된 function 외부에서 호출시 해당 변수에 접근을 하지못한다. ** 이미 선언된 변수이름을 다시 재선언해도 문제가 발생하지 않는다. [2] block-scope(let, const) 기존 변수에 같은이름으로 재할당도 허용하는 var의 명확하지 못한 문제점 때문에 ECMAScript 2015 (ES2015)에 재선언이 불가능 한 let과 const가 추가되었다. let은 해당 변수에 값을 재할당 하는것이 가능하지만, const는 재선언과 재할당 모두 불가..
[JPA] JPA 설명 (1) - 사용 이유 [1] JPA 와 ORM 프레임워크 사용 이유. 1) 생산성 만들어진 객체로 데이터베이스를 다루기 때문에 기존 Mybatis와 같은 Mapper 방식에서는 컬럼을 추가하거나 수정하게 되면 전체를 수정하게 되는 방법보다 생산성이 높다. 2) 유지보수성 SQL 쿼리를 직접 작성하지않고 엔티티 필드가 되는 객체를 다뤄 DB를 사용하기 때문에 유지보수가 더욱 간결하다. 3) 성능 일반적인 Spring의 encache 기능처럼 동일한 쿼리에 대한 캐시 기능을 사용한다. 4) RDBMS 종류와 무관 객체 중심으로 동작하기 때문에 Oracle, Mysql, Mssql과 같이 서로다른 환경에서도 문법을 바꿔 마이그레이션을 해야하는 번거로움이 없다. [2] 제약사항 및 단점 JPA는 통계처리와 같이 복잡한 쿼리보다는 실..
[JAVA] hasNext() 와 next() 의 차이 hasNext() 와 next() 의 역할 - Iterator 인터페이스에서 추가적인 요소를 가져오는 역할을 한다. hasNext() - boolean 자료형 타입으로 반환된다. next() - 입력된 값에 따라 원하는 반환값을 가지고온다. 즉, hasNext() 다음에 가져올 값이 있으면 True or False로 존재여부를 판단하고 next()는 가져올 값이 있으면 해당 값을 가져온다.
[Oracle] SQL 실행계획 및 트레이스 [1] 질의 도구를 이용한 실행계획 및 트레이스(SQL Developer) 1.Plan(계획설명) Sql 질의를 실행하기전 나의 질의문을 어떻게 실행 할 것인지에 대한 계획. **Sql Developer 에서 F10단축키를 이용한다. 2.Trace(자동추적) Sql 질의를 실행한후 나의 질의문을 Oracle이 어떻게 실행하였는지를 보여준다. **Sql Developer에서 F6을 이용한다. [2] Explain plan for를 이용한 실행계획 EXPLAIN plan FOR 질의문; 확인 : SELECT * FROM TABLE(dbms_xplan.diisplay); [3] SQL PLUS의 autotrace를 활용하는 방법도 존재한다.(autotrace 권한부여)
[Jquery] .extend() extend() - 두개 이상의 객체를 합칠때 사용한다. jQuery.extend(target, object1,objectN) 1) target : 합쳐지는 추가 객체 속성을 받을 객체 또는 유일한 인자일 경우 jQuery 네임스페이스로 확장될 객체 2) object1 : 합쳐질 때 기준이 될 객체 3) objectN : 기준 객체에 합쳐질 추가 객체
[Pythone] 장고를 이용한 웹 프로젝트(윈도우 기준) before step ) 파이썬과 장고를 설치 후 ​ [1] cmd 실행 후 생성하고 프로젝트를 생성하고 싶은 위치에 "django-admin startproject 프로젝트명" 명령어 실행. ex) django-admin startproject testProject ​ [2] 해당위치에 프로젝트가 생성되면 프로젝트의 1depth 하위에 manage.py 파일과 생성한 프로젝트명의 폴더가 생성된걸 확인할수 있다. ​ [3] 정상적으로 프로젝트가 실행되는지 확인하는 방법 ​ manage.py 파일이 존재하는 위치에서 "python manage.py runserver" 명령어를 실행시키면 http://127.0.0.1:8000 에서 서버가 실행되고 있는걸 확인 할 수 있다. ​ **브라우저에 127.0.0...
[Spring] Filter와 Interceptor Filter - 필터는 J2EE 표준 스팩에 정의 되어있는 기능이다. 주요 목적 : 보안관련 처리와 같은 web app의 전역적으로 처리해야하는 로직을 구현하기 위함. 동작 위치 : Dispatcher Servlet의 앞단에서 동작. Interceptor - 인터셉터는 Spring Framework에서 자체적으로 제공하는 기능. 주요 목적 : 인증, 권한등에 대한 디테일한 처리에 대해서는 인터셉터에서 처리한다. 동작 위치 : Dispatcher Servlet에서 Handler(Controller)로 가기전에 정보를 처리한다. ​ ​ **J2EE 란 : 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합.
[Java] JDK14 기능정리 Pattern Matching for instanceof (Preview) 런타임에 객체의 타입을 확인하는 instanceof 연산자는 보통 아래와같은 관용구(idiom)로 많이 사용된다. if(obj instanceof String) { String s = (String) obj; } 이 instanceof 연산자를 확장하여 아래와같은 문법을 지원한다. if(obj instanceof String s) { // String 타입의 s 변수 사용 } 코틀린에 대한 경험이 있는 사람이라면 바로 느꼈겠지만 코틀린의 스마트 캐스팅과 유사한 문법으로 보인다. 다만 한가지 좀 이해하기 어려운 스펙이 있는데 if (obj instanceof String s){ System.out.println(s.startsWit..
[Spring Boot] HttpMessageConverters ● Http 요청 부문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용한다. HttpMessageConverters의 종류는 여러가지가 존재하고, 어떤 요청을 받고 어떤 응답을 보내는지에 따라 메시지 컨버터가 달라진다. ​ @RequestBody @ResponseBody 아래에서 User(객체)를 리턴할 때는 기본적으로 JsonMessageConverter가 사용이되고, String타입을 이턴할 때는 StringMessageConverter가 사용이 된다. int도 마찬가지로 StringMessageConverter이다. @RestController면 @ResponseBody는 생략해도 된다. MessageConverter를 타고 객체를 응답 본문으로 바꾼다. 그냥 @Controlle..
[Spring Boot] Auto Configuration 설정과 원리 Spring은 component-scan을 통해 component들을 찾아 bean 생성을 진행하며 설정한 bean들이 생성된다. 이와 마찬가지로 spring에 기반을둔 spring boot 역시 이와같은 방법을 통해 bean을 생성한다. spring boot는 이와같은 빈 생성을 어노테이션을 통해 xml 파일 없이 보다 쉽게 설정이 가능하다. spring boot는 @Controller, @RestController, @Service, @Repository, @Bean과 같은 어노테이션은 물론 @EnableAutoConfiguration어노테이션을 이용한 auto configuration 기능에 의해 추가적인 bean들도 함께 생성된다. ​ 1. @EnableAutoConfiguration..
[spring boot] ExceptionHandler 스프링 부트에서는 ExceptionHandler를 기본적으로 등록하여 Exception을 처리하고 있다. 기본 예외 처리기는 스프링에서 자동적으로 등록하는 BasicErrorController에서 관리하고 에러발생시 JSON형태로 리턴값을 준다. ​ ▶이와 같은 기본 Exception처리 이외에 사용자가 커스텀으로 등록하여 구현가능한데 스프링 부트에서는 @ExceptionHandler 어노테이션을 사용하여 해당 Exception을 구현할수 있다. ​