전체 글 83

@NotNull @NotEmpty @NotBlank 차이

Bean Validation API의 NotNull, NotEmpty, NotBlank의 차이에 대해 설명한다. @NotNull The annotated element must not be null. Accepts any type. 모든 타입에 대해 null을 허용하지 않는다. @NotEmpty The annotated element must not be null nor empty. Supported types are: CharSequence (length of character sequence is evaluated) Collection (collection size is evaluated) Map (map size is evaluated) Array (array length is evaluated) ..

Java 2020.03.04

Http Response Code에 대한 간단한 정리

400과 404의 차이에 대해 구글링하던 결과에 대해 정리해 보고자 한다. 자세한 사항은 표준문서 RFC 2616(https://tools.ietf.org/html/rfc2616#section-10.4)을 참고하자. RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1 [Docs] [txt|pdf] [draft-ietf-http...] [Tracker] [Diff1] [Diff2] [Errata] Obsoleted by: 7230, 7231, 7232, 7233, 7234, 7235 DRAFT STANDARD Updated by: 2817, 5785, 6266, 6585 Errata Exist Network Working Group R. Fielding Request..

프로그래밍 2020.02.21

Spring Security + Rest

Spring Security는 기본적으로 인증 과정에서의 결과를 redirect로 처리합니다. 인증 성공 시 success page 인증 실패 시 failure page 비인가 접근 시 authentication page 크게 세가지의 행동에 대한 처리를 page redirect가 아닌 response를 반환하게 만들면 됩니다. 이러한 컨셉을 잡고 구현해 나가봅시다. 모든 소스는 https://github.com/lteawoo/RestSpringSecurity에서 확인 하실 수 있습니다. Spring Security 기본 인증의 경우 UsernamePasswordAuthenticationFilter에서 formlogin 요청을 필터링하여 처리합니다. 이 클래스는 AbstractAuthenticationP..

Spring 2020.02.19

람다 (Lambda)

람다 람다 표현식이란 클로져(Closures)나 익명 함수, 익명 메서드(anonymous methods, anonymous functions)로 알려져있다. 다시 말해 자바에서는 익명 메서드를 나타내기 위한 표현식(expression)이라 생각하면 된다. (int x, int y) -> x + y () -> 42 (String s) -> { System.out.println(s); } 첫번째 식은 매개변수로 x, y를 받고 x, y의 합을 반환한다 두번째는 integer 42를 반환한다. 마지막은 매개변수로 String s를 받고 그것을 콘솔에 출력, 아무것도 반환하지 않는다. 일반적인 문법은 매개변수들, ->(화살표) 그리고 body로 이루어진다. body는 단독으로 표현 하거나 { } 중괄호 블럭으..

Java 2020.02.18

Netgear 공유기 DHCP 임대시간 변경하기(R7800)

KT인터넷에 Netgear 공유기 사용 중인데 1시간마다 인터넷이 끊기는 현상 발생 DHCP 임대 요청하면서 끊기는거 같아 임대시간 변경하여 이상 없음 확인했습니다. ※Telnet 활성화가 되어있어야 진행 가능합니다. Netgear 공유기 Telnet 활성화 하기(R7800) Netgear 공유기 Telnet 활성화 하기(R7800) Netgear R7800를 사용중인데 아마 같은 라인이면 비슷할거라 봅니다. 텔넷 활성화 제어판 -> 프로그램 및 기능 -> Windows 기능 켜기/끄기 -> Telnet Client 활성화 Netgear 공유기의 텔넷 활성화 1.Debug 모드.. lteawoo.tistory.com Telnet 접속 후 설정 확인 config show | grep -i lease 명령어..

IT Tip 2020.01.05

Netgear 공유기 Telnet 활성화 하기(R7800)

Netgear R7800를 사용중인데 아마 같은 라인이면 비슷할거라 봅니다. 텔넷 활성화 제어판 -> 프로그램 및 기능 -> Windows 기능 켜기/끄기 -> Telnet Client 활성화 Netgear 공유기의 텔넷 활성화 1.Debug 모드 이용 http://192.168.1.1/debug.html에 접속한다. 공유기 관리자 id/pw로 로그인 Enable Telnet 옵션 활성화 해당 옵션은 라우터 재부팅 시 비활성화 됩니다. 2.Telnetenable 프로그램 이용 https://github.com/insanid/NetgearTelnetEnable에서 다운로드 혹은 첨부된 파일 다운로드 명령 프롬프트에서 다음 명령어로 Telnetenable 실행(mac주소는 관리자 페이지 혹은 제품 아래 라벨..

IT Tip 2020.01.05

STS4 + Spring Boot + Gradle 기본 세팅하기

환경 구성 개발 툴 : STS 4 -> Spring boot 개발을 위한 최적화 툴이라고 생각함. Intellij CE(무료버전)으로 개발하다 Web과 Spring 그리고 JSP에 대한 기능 미비로 대체함 빌드도구 : Gradle -> Maven Repository도 지원하면서 빠름, Maven에 비해 간결한 설정 프레임워크 : Spring Boot -> Spring 레거시보다 빠른 프로젝트 시작 가능이 최대의 장점이라고 생각한다. 그리고 확장성 부분도 부트가 나온지 꽤 됐기 때문에.. 레거시보단 못하겠지만 그래도 훌륭하지 않을까. 귀찮음을 해결한 대가라고 생각하자. Spring Boot makes it easy to create stand-alone, production-grade Spring base..

Spring 2019.12.23

Flutter 튜토리얼 시작하기 - 3.2

저번 Flutter 튜토리얼 시작하기 - 3.1에 이어서 3단계를 진행해보도록 하겠다. 3단계 : Stateful widget 추가하기 Stateless widget은 변경할 수 없다 불변이다, 해당 widget의 속성들은 변경이 불가능하다. Stateful widget은 자신의 생명주기 동안 변경되는 상태를 그대로 유지한다. stateful widget을 구현하는 것은 최소 2개의 클래스가 필요하다. 1) StatefulWidget 클래스와 , 2) State 클래스가 필요하다. StatefulWidget 클래스는 State 클래스의 인스턴스를 구현하고 자기 자신은 변경할 수 없다 하지만 State 클래스는 widget의 생명주기 동안 지속된다. 이번 단계에서는, State 클래스인 RandomWord..

Flutter 2019.09.28

Flutter 튜토리얼 시작하기 - 3.1

이번 포스트에서는 간단하게 스타트업의 이름을 생성하여 제공하는 app을 만들어 보자. 진행에 관련된 모든 소스는 Github에서 확인 할 수 있다! 사용자는 이름을 선택하거나 해제할 수 있고, 가장 좋은 이름 하나를 저장할 수 있게 기능을 구현해볼 것이다. 화면은 리스트로 구성하여 스크롤을 내릴 때 이름을 생성하게 하고, 스크롤은 제한이 없게 끔 해보도록 하자. 아래의 샘플 이미지를 보면 우리가 만들게 될 app이 어떤 모습일지 알 수 있다. 우리가 이번 포스트로 배울 수 있는 것? Android, IOS나 web에서 자연스럽게 보이는 Flutter app를 만드는 법! Flutter app의 기본 구조 기능 확장을 위해 패키지를 찾거나 사용하는 방법 빠른 개발 사이클을 위한 Hot reload 사용법 ..

Flutter 2019.09.26

Flutter 튜토리얼 시작하기 - 2

이번 포스트에서는 Flutter와 Dart 플러그인을 Android Studio에 적용 한 다음 AVD에 테스트로 앱을 한번 띄워보도록 하겠다. 진행에 관련된 모든 소스는 Github에서 확인 할 수 있다! Flutter와 Dart 플러그인 설치 Android Studio를 실행한다. Configure > Plugin 을 진행하여 plugins 창을 띄운다.(기존 프로젝트가 있는 분들은 Preferences > Plugins 혹은 File > Settings > Plugins 로 진행한다.) Flutter를 검색하거나 직접 찾은 다음 Install 버튼을 눌러 다운로드 받는다. Dart 플러그인도 설치하겠냐는 창이 뜨면 설치해준다. Restart IDE를 눌러 재시작한다. Flutter plugin이 정..

Flutter 2019.09.20