분류 전체보기 189

Spring Security 를 이용해서 UserDetailService 사용하기

이 포스팅은 지난 포스팅에서 이어서 나온 내용입니다. 지난 포스팅에서는 WebSecurityConfig를 만들어서 커스텀 로그인을 만들었습니다. home과 / 는 로그인을 하지 않아도 접속하게 만드는 것이 저번 포스팅까지 하였습니다. package com.myBoard.demo; // import 생략... @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/css/**", "/vendor/**", "/js/**", "/imag..

Spring Security 사용하기 - WebSecurityConfig 파일 구성하기

Spring Security를 활용해서 custom login page를 만드는 법을 배웠는데, webSecurityConfig file에 대해서 알아보겠습니다. package com.myBoard.demo; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Enable..

JSP vs Thymeleaf

보통 Java spring의 프론트엔드로 JSP를 많이 씁니다. 하지만 Jsp의 장점이자 단점은, html파일이 아니고, java 파일이라는 겁니다. 그래서, java 논리를 쓸 수 있어서 편한 점도 있지만, seperation of concern, 즉, 프로그래밍 디자인적으로 프론트엔드와 백엔드를 나누려는 요즘의 트렌드에 조금 맞지 않다고도 볼 수 있습니다. 참고 url (영어) : www.quora.com/Which-is-better-Thymeleaf-or-JSP 하지만 확실한 건, thymeleaf건 jsp건, 그 문법에 대해서 알아야 한다는 점입니다. 아무리 thymeleaf가 html이라고 해도, 태그가 있기 때문입니다. Name 위와 같이 th를 사용하여 thymeleaf 네임스페이스를 추가해..

Spring Security를 이용해서 custom login page 만들기

spring security를 이용해서 로그인을 만들면, 디폴트 로그인 페이지가 나옵니다. 다음과 같은.. 뭐 최악이라고 할 순 없지만, 이대로 쓰기는 좀 그렇기 때문에, 따로 페이지를 만들려고 합니다. 참고로 이 로그인을 하기 위해서는, username은 user, password는 임시 비밀번호가 콘솔 창에 나옵니다. 그럼 이 화면을 우리가 원하는 화면으로 어떻게 바꿀수 있을까요? WebSecurityConfig.java 파일을 만들고 override를 하면 됩니다. package com.myBoard.demo; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframewor..

Gstreamer 기본 구성 요소들

Element - element는 gstreamer에서 기본적인 구성요소 입니다. 데이터를 보내거나, 받거나, decode/encode하는 등 한 가지의 기능을 하는 요소를 말합니다. Pads - 데이터의 input과 output을 담당하는 구성요소를 말합니다. 구체적으로, 데이터를 보내는 부분을 source pad, 받는 부분을 sink pad라고 합니다. 또, src와 sink를 연결하는 부분을 link라고 합니다. source와 sink 에서 서로 보내는 data type을 정해줘서 그 부분이 맞는 경우에 link가 성공적으로 연결됬다고 할 수 있겠습니다. Data는 보통 Buffer의 형태로 옮겨집니다. (GstBuffer) Bin - element들의 합으로 이루어진 container를 bin이..

Gstreamer에 대해서

참고: gstreamer공홈 : (영어) gstreamer.freedesktop.org/documentation/application-development/introduction/gstreamer.html?gi-language=python Gstreamer란? ffmpeg와 같이 영상을 encoding/decoding하고, streaming 하고, 등등 여러가지를 할 수 있게 해 주는 framework 입니다. 멀티미디아 프레임워크로서 Gstreamer는 미디어 플레이어를 만들 때 많이 쓰입니다. 하지만, 단지 미디어 플레이어를 만드는 것 이외에도, 유저가 플러그인들을 붙여서 애플리케이션을 만들 수 있게 해 줍니다. ffmpeg와 다른 점은, ffmpeg는 여러 라이브러리들을 포함하는 큰 프로그램으로, ..

Video Encode/Decode란?

ref : (영어) www.haivision.com/blog/all/the-beginners-guide-to-video-encoding-decoding-and-transcoding/ 비디오는 아날로그 파일이기 때문에, 파일로 변환하기 위해서는 디지털 신호로 바꿔줘야 합니다. 이러한 일련의 과정을 인코딩(encoding)이라고 하는데, 비디오 인코딩은 live와 file 두 가지가 있습니다. 인코딩을 하지 않고 보내면 용량이 굉장히 크기 때문에, 또 파일로 저장할 경우에도 용량을 줄이기 위해 인코딩을 합니다. 인코딩을 하는 포맷으로는 H264나 H265 등의 파일형식을 사용하고, 인코딩과 디코딩을 사용하는 알고리즘을 Codec이라고 합니다. codec을 사용하면 안하는 것보다 1000배는 더 용량을 줄일 ..

Video Processing 2021.01.07

h2 데이터베이스 설정과 초기 데이터 구축 (User table)

Spring Boot에서 인메모리 데이터베이스인 h2를 테스트로 사용해 보았습니다. 1. Spring Boot에서 pom.xml에서 dependency를 추가합니다. 그 후, Maven을 사용해 Build 합니다. com.h2database h2 2. application.properties에서 h2 설정을 세팅합니다. spring.h2.console.enabled=true spring.datasource.platform=h2 spring.datasource.url=jdbc:h2:mem:jinmo 3. model package 에서 User class를 세팅해줍니다. package com.myBoard.demo.model; import javax.persistence.*; @Entity @Table(na..

rtsp feed 에서 이미지 저장하기

stack overflow 링크 : stackoverflow.com/questions/56439798/how-to-check-if-rtsp-url-is-up-down-using-python-script ffmpeg를 이용하여 rtsp feed의 이미지를 저장할 수 있습니다. /usr/bin/ffmpeg -y -frames 1 snapshot.png -rtsp_transport tcp -i rtsp://test_url_here 또한 Gstreamer를 이용해서 여러 장의 이미지를 저장할 수도 있습니다. stack overflow 링크 : stackoverflow.com/questions/59025321/capture-jpeg-images-from-rtsp-gstreamer gst-launch-1.0 -v ..

Video Processing 2021.01.04

Tx2 에서 안쓰는 CPU코어 사용하기 (JTOP, nvpmodel 사용)

출처 : forums.developer.nvidia.com/t/cannot-enable-denver-cores-for-tx2-jetpack-4-4-dp/124708/38 Tx2를 사용하다 보면 jtop을 사용할 수 있는데, jtop이란, pc 의 상태를 확인하게 해 주는 것이고, 이 command로 설치가 가능합니다. $ sudo -H pip install -U jetson-stats 6개의 cpu중에 2개를 사용하지 않는 것을 확인할 수 있습니다. Jetson에서는 CPU의 전력제한을 풀어주는 모드가 있는데, 이를 조절하는 옵션을 nvpmodel 이라 하고, 다음과 같은 커맨드로 바꿀 수 있습니다. $ sudo nvpmodel -m 0 # 0번 모드로 설정 $ sudo nvpmodel -q –verbo..