Get Spring Security Principal in JSP EL expression
JSP에서는 java를 사용할 수 있기 때문에 다음과 같이 java 코드를 사용하여 Spring Security Principal을 가져올 수 있습니다. <%=org.springframework.security.core.context.SecurityContextHolder.getContext(..
키자드에 등록된 총 653개의 포스트를 확인하실 수 있습니다.
JSP에서는 java를 사용할 수 있기 때문에 다음과 같이 java 코드를 사용하여 Spring Security Principal을 가져올 수 있습니다. <%=org.springframework.security.core.context.SecurityContextHolder.getContext(..
API 통신에서 JPA를 사용할 때 entity를 그대로 return 하면 좋지 않습니다. 그 이유는 다음과 같습니다. entity 변화 시, API도 변경 Database를 관리하다 보면 의외로 생각보다 Database가 변경되는 경우가 많습..
우리가 일반적으로 알고 있는 IP는 192.168.0.1, 127.0.0.1과 같은 형태인데, java에서 request.getRemoteAddr()의 IP가 0:0:0:0:0:0:0:1인 경우가 있습니다. 여기서 0:0:0:0:0:0:0:1이라는 건 IPv6의 주소입니다...
안녕하세요 노루 아부지 입니다. 요즘 삼성 페이 많이 사용하시죠? 저도 삼성 페이를 사용하는데요 주변에 보면 삼성페이 때문에 갤럭시를 벗어날 수 없다는 분들이 정말 많은데요 오늘은 삼성페이를 사용하면서..
얼마 전에 테스트 서버의 DB를 Oracle 12c를 사용하다가 서버를 포맷하게 되어 포맷을 한 김에 19c로 업그레이드했는데 상상하지 못했던 문제가 발생했습니다. Spring JPA + Hicaricp 환경에서 DB 접속 시간이 너..
Spring Boot에서 프로젝트 실행 시 아래와 같은 에러 메시지 발생하며 실행되지 않는 경우가 있습니다. Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hib..
SpringBoot에서 war 파일을 만들기 위해서는 @SpringBootApplication에서 SpringBootServletInitializer를 확장해야 합니다. 그 방법은 다음과 같습니다. pom.xml의 packaging을 war로 변경합니다. war pom.xml..
java에서는 다음 클래스들을 이용하여 파일을 쓸 수 있습니다. java - write to file BufferedWriter PrintWriter FileOutputStream java.nio.file 1. BufferedWriter import java.io.BufferedWriter; import java..
1. 개요 코로나 19로 인한 위기는 세상에 상당한 충격을 주었다. 이 충격은 기업의 인프라와 운영에 관해 거의 모든 향후 기술에 영향을 미친다. 미국의 정보 기술 연구 및 자문 회사인 가트너의 리서치 부사장인..
DATE ONLY FORMATS 1 convert(varchar, getdate(), 1) mm/dd/yy 12/30/06 2 convert(varchar, getdate(), 2) yy.mm.dd 06.12.30 3 convert(varchar, getdate(), 3) dd/mm/yy 30/12/06 4 convert(varchar, getdate(..
1. IntelliJ Run > Edit Configurations choose your project remove the 'Enable launch optimization' and 'Enable JMX agent' checkboxes 2. Eclipse Run > Run Configurations choose "Spring Boot" tab re..
컴퓨터를 사용하다 보면 탐색기를 자주 호출하게 됩니다. Windows 10이 되면서 아래와 같이 탐색기에 '자주 사용하는 폴더'와 '최근에 사용한 파일' 목록이 표시됩니다. 이 기능이 편리한 점도 있지만 여러 사람..
Spring에서 의존관계 주입을 받을 때는 당연하게 아래와 같이 인스턴스 변수에 @Autowired나 @Inject를 사용해 왔습니다. public class ExampleController { @Autowired private UserService userService; } 그러..
Spring boot에서 프로그램을 run 할 때 다음과 같은 메시지가 발생하는 경우가 있습니다. java.lang.NoClassDefFoundError: javax/servlet/Filter 해결방법은 gradle 또는 maven에서 spring-boot-starter-tomcat의..
일반적으로 query를 하거나, 프로그램 개발을 하다보면 문자열의 길이를 구해야 하는 경우가 생각보다 많습니다. MySQL의 경우 문자열의 길이를 가져올 때 사용하는 함수는 LENGTH함수입니다. 하지만 테스트로 LEN..
java로 개발을 하다 보면 미처 신경을 못써서 개발환경의 jdk와 운영환경의 jdk가 다른 경우가 있는데, 기본적으로 java에서 하위 호환은 되지만, 상위 호환은 되지 않습니다. 예를 들어 java8로 컴파일된 class는..
DBMS별 함수 비교 NULL TO STRING ORACLE: NVL MSSQL: ISNULL MYSQL: IFNULL substring ORACLE: SUBSTR MSSQL: SUBSTRING MYSQL: SUBSTRING 문자열 합치기(concat) ORACLE: || MSSQL: + MYSQL: CONCAT 공백 제거 O..
Eclipse에서 웹 프로젝트를 실행할 때, Run > Run on server를 이용하여 실행해야 하는데, Run에 Run on server가 없는 경우가 있습니다. 해결방법을 아래에 나열합니다. 1. Dynamic Web Module 옵션 체크 확인 검..
안녕하세요 노루 아부지입니다. 오늘은 Adobe Flash Player 지원 종료에 대해 포스팅을 하려고 합니다. 1. Adobe Flash Player 개요 1996년 11월 처음으로 등장한 Flash는 2020년 12월까지 서비스가 제공되었습니..
프로그래밍을 하다 보면 아래와 같이 파일 경로에서 파일명만 추출해야 하는 경우가 생각보다 많습니다. 예를 들어 C:/Document/Temp/FileName.txt 에서 FileName.txt만 추출해야 할 경우 입니다. 방법 1. File.ge..
Linux에서 MariaDB 설치한 후 query 시, 대소문자를 구분하는 문제가 있습니다. (Windows에 설치 할 경우 이런 문제가 없습니다.) 그 이유는 lower_case_table_names 옵션 때문인데요 이 옵션의 값은 아래와 같습..
eclipse에서 프로그램을 실행하는데는 문제가 없는데 debug모드를 걸려고 하면 아래와 같은 메시지가 뜨며 실행되지 않는 경우가 있습니다. FATAL ERROR in native method: processing of -javaagent failed, appe..
혹시 탄소포인트제라는 것을 아시나요? 탄소포인트제는 정부가 온실가스 감축 및 저탄소 녹색성장에 대한 시민의식과 참여 확대를 위해 도입한 제도입니다. 벌써 10년이 넘은 제도라는데 전 이번에 처음 알았네요..
안녕하세요 노루아부지 입니다. 혹시 이 글을 보시는 여러분들은 집 번호키 눌러서 문을 여시나요? 요즘엔 세상이 좋아져서 스마트폰으로도 문을 열 수 있는데요 (아이폰은 아직 안되지만요) 혹시 만화나 영화에서..
여러분들 콜라, 사이다 좋아하시죠? 특히, 무더운 여름철에는 더욱 '탄산음료'를 찾게 됩니다. 실제로, 탄산음료의 소비량은 여름에 집중됩니다. 그런데, 혹시 탄산음료가 치아에 안 좋다는 이야기를 알고 계신가..
혹시 디지털 노마드라는 말을 들어보셨나요? 디지털 노마드란 디지털(digital)과 유목민(nomad)을 합성한 신조어로서, 인터넷 접속을 전제로 한 디지털 기기(노트북, 스마트폰 등)를 이용하여 공간의 제약을 받지..
HTTPS로 웹 서비스를 올렸는데, 사용자가 HTTP로 접근하는 경우가 있습니다. 이 경우 보통 설정에서 HTTPS로 리다이렉트 시켜주는 경우가 많습니다. 하지만 이 리다이렉션 자체가 보안에 취약점이 될 수 있습니다...
안녕하세요! 오늘은 티스토리 블로그 운영의 첫걸음! 구글 검색 등록에 대해 알아보려고 합니다. 네이버 블로그의 경우 국대 최다 사용자를 보유한 네이버에서 검색이 되기 때문에 별도의 작업 없이도 사용자가 유..
안녕하세요 노루 아부지입니다. 오늘은 "광역알뜰교통카드"에 대해 알아왔는데요 이게 엄청난 녀석입니다! 알뜰교통카드 휴대폰 어플로 1차 할인받고, 체크/신용 카드로 2차 할인을 받을 수 있는 제도인데요 일반..
안녕하세요 노루아부지입니다. 혹시 탄소포인트제에 대해서 아시나요? 탄소포인트제란 탄소배출을 줄이기 위해 에너지를 절약하면 이에 따른 인센티브를 지급하는 제도입니다. 이 탄소포인트제의 자동차 버전이 자..
1. 앱테크란? 여러분들 앱테크를 아시나요? 앱테크는 애플리케이션의 줄임말인 '앱'과 재테크의 합성어입니다. 즉, 휴대폰 앱을 통해 수익을 얻는 활동을 말하는 것입니다. 앱테크에는 여러가지 유형이 있는데요..
안녕하세요 노루아부지 입니다. 이번에 새로운 java 프로그램을 JPA로 개발하던 중, 예약어로 인해 에러가 발생했습니다. 저희 회사에서는 mssql, mariadb, oracle 이렇게 3개의 Database를 사용하는데요. 문제는..
Spring boot 환경에서 Controller의 Test를 만드는 중, @Autowired된 클래스가 null이 되는 현상이 발생했습니다. 해결방법은 다음과 같습니다. 1. 개발 환경 1) OS : Windows 10 2) 개발 툴 : IntelliJ 3) 빌드..
회사에서 GS 인증을 받던 중, 비밀번호에 SALT를 적용해야 GS 인증을 받을 수 있다고 연락을 받아서 관련 내용을 정리해 보았습니다. 암호 SALT는 패스워드 크래킹을 방지하기 위한 가장 널리 알려진 방법입니다...
생강은 우리나라의 식생활에서 없어서는 안될, 가장 많이 사용하는 식재료 중 하나입니다. 또한 생강은 예로부터 약으로도 많이 쓰였습니다. 생강이란? 생강(生薑)은 생강과에 속하는 여러해살이풀이다. 새앙, ..
Office 프로그램 설치를 할 때 보통 torrent 등에서 설치 파일을 받아서 사용하는데, 순정을 설치하지 않을 경우 컴퓨터에 악성코드나 바이러스가 감염될 수 있습니다. 그래서 오늘은 순정 MS Office를 설치하는..
MS office 삭제 할 때 아래아 같이 "사용자 시스템에서 설치 패키지이 언어가 지원되지 않습니다." 라는 메시지가 표시되면서 삭제가 되지 않는 경우가 있습니다. 이 경우 아래 MS(Microsoft) 홈페이지에서 제공..
예전에는 windows 설치 CD나 USB를 만들려면 ISO 파일을 구해서 CD 굽는 프로그램, USB 설치 프로그램을 받아서 만들어줘야 했습니다. 하지만 Windows 10은 공식적으로 설치 USB 만드는 프로그램을 제공합니다. 먼..
안녕하세요 노루아부지입니다. 집이나 회사에서 대부분 Microsoft office를 사용하고 있으실겁니다. 아마 대부분의 사람들이 정품이 너무 비싸기 때문에(2021-03-07 기준 Office 2019 Home 가격: 약 120,000 원)..
드넓은 땅과 풍부한 자원을 가지고 있고, 남미의 꽃이라 불리는 아르헨티나. 한때 세계 5위의 경제 대국이었던 아르헨티나. 유명한 만화영화인 엄마 찾아 삼만리에서 주인공 마르코의 엄마가 돈을 벌려고 떠났던..
인터넷 강의 동영상을 보다 보면 마우스 커서 주위에 반투명한 원이 있는 경우를 자주 볼 수 있는데요 오늘은 그 커서를 어떻게 만드는지 알아보도록 하겠습니다. 윈도우 마우스 포인터 변경 기능으로 바꿀 수도..
어떠한 문제로 와우를 삭제후 재설치 해야 하거나, 정말 와우를 삭제 하고 싶을 경우 일반적으로 아래와 같이 제어판의 프로그램 및 기능에서 와우를 삭제하려고 시도합니다. 하지만 이럴 경우 아래와 같이 이 게..
이클립스에서 Junit 테스트를 할 때 No Tests found with test runner 'JUnit 5' 메시지가 뜰 경우 해결 방법은 다음과 같습니다. 이클립스 상단 메뉴 [Run] 클릭 후 [Run Configurations] 항목을 선택 Junit > [..
DB에 접속 중인 세션을 오랫동안 사용하지 않거나 네트워크에 문제가 발생하는 경우 DB 세션이 끊어질 수 있습니다. DB 세션이 끊어지는 경우 재접속 처리를 해야 다시 정상적인 서비스가 가능해집니다. 재접속 처..
1. VMware Workstation Pro download. 1.1 아래 링크를 클릭하여 VMware를 다운로드합니다. [다운로드 링크] 1.2 스크롤을 내리다 보면 아래와 같은 버튼이 보이는데, 설치하고자 하는 OS에 따라 맞는 버튼을 눌러..
VMware에서 OS를 설치할 때, 기본 설정은 NAT 입니다. 이 경우 아무 설정도 하지 않을 경우 VMware를 설치한 PC에서는 VMware로 접속이 가능하지만, 외부에서는 접근이 불가능합니다. 이 때 port forwarding을 설..
CentOS 7 부터는 iptables 가 아니라 firewall 명령어로 Port를 열어야 한다고 합니다. 명령어는 아래와 같습니다. firewall-cmd --zone=public --permanent --add-port=2888/tcp firewall-cmd --reload 열린 포트..
CentOS 7에서 ip addr 명령어를 입력하면 아래와 같이 Network 정보가 표시되는데 인터넷이 안될 경우 아래와 같이 IP 정보가 표시되지 않습니다. * [참고사항] 기존에는 ifconfig를 통해 Network 정보를 확인 했..
0. Check the maven repositiory server is up 1. Check Proxy is set up and working First I thought it was a proxy problem, I made sure that maven settings.xml contained the proxy settings (settings.xm..
코딩을 하다 보면 특정 클래스, 메서드가 어디에서 사용 중인지 필요할 때가 있습니다. 기존에는 클래스나 메소드가 어디에서 사용 중인지 찾기 위해서는 단어로 찾는 등 너무 힘이 들었습니다. 하지만 최근에 좋..
CentOS 7에서 MariaDB를 yum으로 설치하면 예전 버전이 설치됩니다. 그 이후 버전을 설치하기 위해서는 repo를 등록한 후 설치해야 합니다. 1. MariaDB yum repo 등록 # vi /etc/yum.repos.d/MariaDB.repo [mariad..
MySQL, MariaDB, PostgreSQL, MSSQL, Oracle 등의 Database를 사용하면서 보통 utf8로 설정합니다. 하지만 MariaDB, MySQL의 경우 최근 utf8mb4로 설정하는 경우가 많다고 합니다. 그 이유는 emoji 때문입니다. My..
mysql과 mariadb는 기본 명령어가 같기 때문에 같은 명령어로 외부 접속이 가능하도록 할 수 있습니다. // mariadb 접속 # mysql -u root -p // database를 mysql로 변경 $ use mysql; $ select host, user from u..
전원 설정에서 "고성능"으로 변경 1. 윈도우키 + E키를 눌러 파일 탐색기를 실행 2. 아래 그림과 같이 탐색기 경로에 "제어판\하드웨어 및 소리\전원 옵션" 입력 3. 아래 이미지와 같이 전원 옵션을 "고성능"으로..
maven 프로젝트에서는 태그를 이용하여 profile을 설정했습니다. 하지만 Spring Boot를 이용한다면 Spring Boot를 이용하면 application.properties 파일을 이용하여 손쉽게 profile을 설정할 수 있습니다. 1. app..
Spring Boot를 사용하면 Spring 버전이 바로 눈에 보이지 않습니다. 이 경우 Spring Boot에서 사용하는 Spring의 버전을 알고 싶을 경우 아래와 같이 getVersion() 메서드를 사용하면 됩니다. String version = or..
ArrayBlockingQueue는 Array로 구현된 BlockingQueue입니다. 특징은 아래와 같습니다. BlockingQueue 인터페이스를 구현 Queue를 생성할 때 크기를 설정(Queue의 크기가 정해져 있음) FIFO(First In First Out)로..
Install OpenJDK Tomcat 9는 Java SE 8 이상의 버전을 설치해야 합니다. 1. 설치 가능 JDK 목록 확인 # yum list java*jdk-devel 2. OpenJDK 설치 # yum install –y java-11-openjdk-devel.x86_64 Tomcat sys..
Java 애플리케이션을 개발하면서 제일 중요한 것 중 하나는 Test라고 할 수 있습니다. 그런데 Eclipse에서 Test class를 만들려면 너무 번거롭습니다. 그 이유는 일반적으로 Test class를 만들 때, src/test/java..
때때로 MySQL에 날짜를 저장할 때 Database의 날짜가 시스템이나 JVM과 다르다는 것을 알게 됩니다. 이런 경우에는 Timezone을 설정하면 됩니다. 방법 1. URL parameter로 Timezone 설정 MySQL은 기본적으로 useLe..
Infinitest는 지속적인 테스트를 해주는 Eclipse와 IntelliJ 플러그인입니다. Infinitest는 소스 코드 변경을 감지해서 영향도가 있는 테스트를 수행합니다. github: http://infinitest.github.io user guide: h..
stackoverflow.com/questions/1049210/adding-an-identity-to-an-existing-column
특정 month의 1일과 마지막 날짜를 구하고 싶다면 아래와 같이 하면 됩니다. 방법 1. LocalDate monthstart = LocalDate.of(year,month,1); LocalDate monthend = monthstart.plusDays(monthstart.lengthOfMonth()..
일반적으로 Spring Boot는 resources에 파일을 위치시킵니다. resources 하위에 text 파일을 Spring에서 제공하는 ResourceLoader를 이용하여 Read 하는 코드가 있습니다. import org.springframework.beans.facto..
Tomcat에 배포할 때 아래와 같이 오류가 발생하는 경우가 있습니다. org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool 이런 요류가 발생하는 이유는 프로젝트를..
위와 같이 Date type으로 변경한 후 변경된 값을 format에 맞도록 바꾸는 형태로 사용
Take a deep breath. Run npm cache clean --force Uninstall from Programs & Features with the uninstaller. Reboot (or you probably can get away with killing all node-related processes from Task Manag..
spring boot + gradle 환경에서 외부 라이브러리(jar)를 추가하는 방법입니다. gradle에서 lib를 추가하기 위해서는 build.gradle 파일에 다음과 같이 명시해야 합니다. 1. 한 개의 파일을 넣는 방법 dependencies..
spring boot에서는 기본적으로 jsp를 권장하지 않습니다. 하지만 jsp를 사용해야 하는 경우에는 아래와 같이 하면 됩니다. 1. 의존성 추가 1.1 gradle compile('org.apache.tomcat.embed:tomcat-embed-jasper') co..
오류처리는 애플리케이션 개발에 있어서 매우 큰 부분을 차지합니다. 오류 예측과 예방, 그리고 오류를 빨리 발견하고 고칠 수 있는 것은 개발자의 필수 조건입니다. ErrorController Spring boot에서 별 다른 설..
undertow란? 초경량 & 고성능 웹 서버 NIO 기반의 Bloking / NON-Bloking API 모두 제공 Java로 구현되어 임베디드 모드의 모든 JVM 기반 응용 프로그램에서 사용 가능 Apache License, version 2.0을 따르는 오픈..
LocalDate에서 LocaldateTime으로 변환하는 방법은 크게 두 가지가 있습니다. atStartOfDay() : 이 메서드는 자정(00:00) 시간을 추가하여 리턴합니다. atTime() : 지정된 시/분/초 를 추가하여 리턴합니다. Local..
JPA에서 기본으로 제공하는 findById(), findAll() 등을 사용하면 기본적으로 모든 컬럼을 select합니다. 만약, 특정 컬럼을 구하려고 할 경우 아래와 같이 하면 됩니다. 먼저, 아래와 같은 User Entity가 존재한..
jsessionid는 새 세션이 만들어지면 클라이언트가 쿠키를 지원하는지 여부를 서버가 알 수 없으므로, 쿠키와 URL에 모두 jsessionid를 만들어 주는 것을 의미하며 url에 붙이거나 헤더에 붙여서 나오게 됩니다. 클..
교차 출처 리소스 공유(CORS, Cross-origin resource sharing)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에..
웹 개발을 하다 보면 가장 많이 발생하는 이슈 중 하나는 분명 수정해서 보내줬는데 받은 쪽에서 에러가 났다던지, 변경이 안되었다던지 하는 경우가 있습니다. 이런 경우는 웹 개발자의 최대의 적 중 하나인 브라..
@Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { @Autowired HandlerInterceptor yourInjectedInterceptor; @Override public void addInterceptors(InterceptorRegistry registry)..
Spring boot에서 아래와 같은 class를 return하는 API가 있다고 가정합니다. public class User { private String userId; private Date createDate; } createDate가 String이라면 상관없지만, 위와 같이 Date형태..
intellij, Gradle 환경에서 프로젝트를 첫 실행 할 때 아래와 같은 오류가 발생하는 경우가 있습니다. Execution failed for task ':DemoSpringApplication.main()'. > Process 'command 'JDK경로/bin/java.exe''..
웹 개발을 하다 보면 데이터베이스를 사용하게 되는 경우가 정말 많습니다. 하지만, 로컬에서 개발하기 위해 로컬환경에 데이터베이스를 설치하고 스키마, 테이블을 생성하고 관리하기 여간 귀찮은 것이 아닙니다...
nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.snowdeer.database.board.Member 만약 위와 같은 오류가 발생한다면 Entity 클래스의 @Id 어노테이션이 없거나..
StringBuffer/StringBuilder 사용 이것은 java code의 입니다. + 연산자는 사용하면 안됩니다. 그 이유는 String은 불변(immutable) 객체이기 때문입니다. 예를 들어, 아래와 같은 코드가 있다면 어떻게 될까요? S..
프로젝트 root에서 마우스 오른쪽 클릭 Run As > Run Configurations... 클릭 왼족에 Maven Build에서 마우스 오른쪽 버튼을 클릭하고 "새로 만들기" 기본 프로젝트를 선택하고 이름 지정 목표 텍스트 필드에 빌드..
만약 아래와 같은 class가 있다고 가정합니다. public class Member { private Long id; private String name; // 이름 private Integer age; // 나이 private String address; // 주소 private String telNo; //..
아래 코드에서는 Null Pointer Exception이 발생합니다. 이 예외를 try catch문으로 printStackTrace를 하면 에러 메시지가 표시됩니다. public class Test { public static void main(String [] args) { String a..
웹 애플리케이션에서 기본적으로 꼭 해야 할 보안 중 하나로 XSS 방지가 있습니다. XSS(크로스 사이트 스크립트)란? 검증되지 않은 입력 값으로 인해 사용자의 웹 브라우저에서 의도하지 않은 악성 스크립트가 실..
Eclipse의 경우 Lombok을 사용하려면 나름(?) 복잡한 절차를 거쳐야 하지만, IntelliJ에서 lombok을 사용하려면 간단하게 plugin을 설치하면 됩니다. 1. IntelliJ를 실행 한 후, Settings에 들어갑니다. (단축키:..
애플리케이션에서 불필요한 모듈 및 Bean 정의를 제거하십시오. 개발자가 저지르는 일반적인 실수 중 하나는 애플리케이션에 웹 환경이 필요하지 않은 경우에 spring-boot-starter-web를 포함하는 것입니다. 다른..
jpa에서 @CreateDate는 DB에 insert를 할 때 자동으로 현재 시간을 넣어주는 annotation입니다. 보통 이것을 사용할 때 아래와 같이 사용하는데요 @Getter @Setter @Entity @EntityListeners(AuditingEntityListen..
Spring은 정말 편하고 좋은 프레임워크이지만 초기 설정이 정말 어려웠습니다. 실제로 스프링을 사용하면서도 왜 이렇게 쓰는지 모르고 쓰는 경우가 많았고, 심지어 자신이 세팅한 세팅한 빈 프로젝트에 설정을 다..
차가버섯은 자작나무에서 기생하면서 자작나무 진을 빨아먹고 사는 기생 버섯입니다. 여기까지만 보면 일반 버섯 같지만, 차가버섯은 일반 버섯과 다르게 돌덩이처럼 딱딱해서 망치로 깨 부숴야 합니다. 차가버섯..
-Xms Java Heap의 최초 크기를 지정합니다. Java Heap은 -Xms 옵션으로 지정한 크기로 시작하며, 최대 -Xmx 옵션으로 지정한 크기만큼 커집니다. Java8에서 이 옵션은 Deprecated 되었습니다. -Xmx Java Heap의 최..
mybatiss를 사용할 경우 ${param}, #{param}과 같이 # 또는 $으로 parameter를 받을 수 있는데, 보통 아래와 같이 #을 사용해서 받는 것을 권장합니다. 그 이유는, #{}이 SQL Injection 공격에 안전하기 때문인데..
개발할 때 Console 창을 많이 보는데, Intellij에서는 이에 해당하는 부분이 output 창입니다. 그런데, 여기에 한글이 출력될 때 아래와 같이 깨지는 현상이 발생하는 경우가 있습니다. 이 경우 아래와 같이 진..
spring boot는 application.properties 파일을 통해 설정을 할 수 있습니다. properties의 값은 @Value annocation을 통해 읽어올 수 있습니다. # application.properties noroo.test=test import org.springframe..
socket 생성시 특히 linux에서 아래와 같은 메시지가 발생하는 경우가 있습니다. Caused by: java.io.IOException: 열린 파일이 너무 많음 또는 Caused by: java.io.IOException: too manny open files 보통 이 에..
NullPointerException은 개발 과정에서 가장 많이 접하면서 간과하기 쉬운 예외 중 하나입니다. reference type을 다룰 때는 항상 null에 대비하여 프로그래밍을 해야 합니다. 이 과정에서 불필요한 null check co..
우슬은 비름과에 속하는 여러해살이 초본식물인 쇠무릎의 뿌리입니다. 쇠무릎이라는 이름은 식물 줄기에 있는 마디의 형상이 소의 무릎과 유사하다고 해서 붙여진 이름이라고 합니다. 우슬의 주요 유효성분으로는..
철길과 좁은 터널 너머로 보이는 북한산이 어우러지는 풍경. 바로 인생 사진의 명소로 알려진 고양시 '벽제 터널'입니다. 하지만 최근 인생 사진을 위해 벽제역(벽제 터널)을 찾았다가 과태료를 내는 사례가 부쩍..