Web/기타
-
이번 포스트에서는 Redis를 이용한 세션 관리에 대해 살펴보자. scale up / scale out 인프라 업그레이드열심히 프로젝트를 진행하고 결과물이 잘 서비스되는 것을 바라보는 것은 매우 흐믓한 일이다. 그러다 사이트 이용자가 점점 많아지다 보면 한 번 씩 렉이 걸리기도 하고 처리에 시간이 걸리는 모습을 보다보면 숨이 턱턱 막힌다. 이럴 때 우리는 인프라의 업그레이드를 고민하게 된다. 인프라를 업그레이드하는 방법은 scale up 과 scale out 방식 두 개로 나룰 수 있다. scale upscale up은 보다 좋은 사양으로 대체하는 것이다. 기존의 장비에 CPU도 좋은 걸로 바꾸고 램도 추가하고 HDD도 더 큰걸로 달아준다. 이 방법은 성능을 증가시킴에 따라 상대적으로 큰 비용이 들게..
세션 관리이번 포스트에서는 Redis를 이용한 세션 관리에 대해 살펴보자. scale up / scale out 인프라 업그레이드열심히 프로젝트를 진행하고 결과물이 잘 서비스되는 것을 바라보는 것은 매우 흐믓한 일이다. 그러다 사이트 이용자가 점점 많아지다 보면 한 번 씩 렉이 걸리기도 하고 처리에 시간이 걸리는 모습을 보다보면 숨이 턱턱 막힌다. 이럴 때 우리는 인프라의 업그레이드를 고민하게 된다. 인프라를 업그레이드하는 방법은 scale up 과 scale out 방식 두 개로 나룰 수 있다. scale upscale up은 보다 좋은 사양으로 대체하는 것이다. 기존의 장비에 CPU도 좋은 걸로 바꾸고 램도 추가하고 HDD도 더 큰걸로 달아준다. 이 방법은 성능을 증가시킴에 따라 상대적으로 큰 비용이 들게..
2023.11.15 -
평소에 잘 사용하던 mustache에서 갑자기 한글이 깨지는 증상이 발생했다. 이 경우 설정 파일에서 server.servlet.encoding.force 옵션을 설정하면 해결된다. server.servlet.encoding.force=true
[mustache]한글 깨짐평소에 잘 사용하던 mustache에서 갑자기 한글이 깨지는 증상이 발생했다. 이 경우 설정 파일에서 server.servlet.encoding.force 옵션을 설정하면 해결된다. server.servlet.encoding.force=true
2022.11.02 -
이번 포스트에서는 jsp에서 el과 함께 js의 backtick 사용시 주의점에 대해서 살펴보자. ${}은 JSP의 el인가.. JS backtick의 변수인가? JSP에서의 el jsp에서는 el 표현식을 사용할 때 ${variable}을 사용한다. el은 html 영역 뿐 아니라 javascript영역에서도 사용할 수 있다. ${some } ecma 6에 추가된 ``은 내부에서 ${var}의 형태로 javascript의 변수를 사용할 수 있다. 그런데 여기서는 some이라는 변수를 선언한 적이 없다. 그럼 위 코드는 잘못된 것인가? 물론 아니다. 여기서는 JSP와 JS의 동작 순서에 대해서 생각할 필요가 있다. 먼저 서버에서 dynamic 하게 html이 생성되서 결과로 전달된 js가 브라우저에서 실..
[jsp] js의 backtick 사용 시 주의 점이번 포스트에서는 jsp에서 el과 함께 js의 backtick 사용시 주의점에 대해서 살펴보자. ${}은 JSP의 el인가.. JS backtick의 변수인가? JSP에서의 el jsp에서는 el 표현식을 사용할 때 ${variable}을 사용한다. el은 html 영역 뿐 아니라 javascript영역에서도 사용할 수 있다. ${some } ecma 6에 추가된 ``은 내부에서 ${var}의 형태로 javascript의 변수를 사용할 수 있다. 그런데 여기서는 some이라는 변수를 선언한 적이 없다. 그럼 위 코드는 잘못된 것인가? 물론 아니다. 여기서는 JSP와 JS의 동작 순서에 대해서 생각할 필요가 있다. 먼저 서버에서 dynamic 하게 html이 생성되서 결과로 전달된 js가 브라우저에서 실..
2022.09.23 -
브라우저 주소창의 한글 URL 복사 한글이 포함된 URL의 표시와 문제 크롬 계열의 브라우저를 사용하면 주소창에 한글이 들어간 경우 일단 한글로 잘 보여준다. 하지만 막상 복사해서 사용하려고 하면 인코딩된 결과가 복사되므로 읽기가 어렵다. https://github.com/quietjun/algo_aps/blob/master/src/main/java/bj/bronze/l5/BJ_B5_8393_%ED%95%A9.java Improved URL copy 사실 브라우저가 공식적으로 지원 해주지 않으면 답은 없어보인다. 비공식적으로는 플러그인을 사용할 수 있다. https://chrome.google.com/webstore/detail/improved-url-copy/nbkaobaododghmjhkjagellf..
[Web]브라우저 주소창의 한글 URL 복사브라우저 주소창의 한글 URL 복사 한글이 포함된 URL의 표시와 문제 크롬 계열의 브라우저를 사용하면 주소창에 한글이 들어간 경우 일단 한글로 잘 보여준다. 하지만 막상 복사해서 사용하려고 하면 인코딩된 결과가 복사되므로 읽기가 어렵다. https://github.com/quietjun/algo_aps/blob/master/src/main/java/bj/bronze/l5/BJ_B5_8393_%ED%95%A9.java Improved URL copy 사실 브라우저가 공식적으로 지원 해주지 않으면 답은 없어보인다. 비공식적으로는 플러그인을 사용할 수 있다. https://chrome.google.com/webstore/detail/improved-url-copy/nbkaobaododghmjhkjagellf..
2022.08.18 -
먼저 mustache에서 사용할 데이터를 설정하는 dto를 작성해보자. DTO import lombok.Builder; import lombok.Data; @Data @Builder public class NoteBook { private String model; private int price; } attribute 출력 {{attribute_name}} model에 담긴 attribute를 출력하기 위해서는 {{attribute_name}}을 사용한다. 이 경우는 text 형태로 attribute의 내용을 단순 출력하는데 간혹 html 형태로 출력하려는 경우 {{{attribute_name}}} 형태나 {{&attribute_name}}을 사용하면 된다. text로 출력: {{ org }} html로..
[mustache] spring boot와 mustache 2먼저 mustache에서 사용할 데이터를 설정하는 dto를 작성해보자. DTO import lombok.Builder; import lombok.Data; @Data @Builder public class NoteBook { private String model; private int price; } attribute 출력 {{attribute_name}} model에 담긴 attribute를 출력하기 위해서는 {{attribute_name}}을 사용한다. 이 경우는 text 형태로 attribute의 내용을 단순 출력하는데 간혹 html 형태로 출력하려는 경우 {{{attribute_name}}} 형태나 {{&attribute_name}}을 사용하면 된다. text로 출력: {{ org }} html로..
2022.03.29 -
SpringBoot에서는 was에 종속적인 JSP를 더 이상 기본으로는 지원하지 않는다. 물론 추가적인 설정을 통해서 사용할 수는 있지만 기본에서 빠진 녀석을 억지로 데려다가 사용하기는 왠지 꺼림직 하다. (암묵적으로 자바 진영의 웹 생태계를 지배하는 Spring의 위력이 새삼 느껴진다.) 이제 SpringBoot에서 미는 녀석들은 Thymeleaf, FreeMarker, Mustache가 있다. 이중 컨셉만 바꾼다면 가장 배우기 쉬운 녀석이 Mustache인것 같다. 이번 포스트에서는 넘나 간단한 Mustache 사용법을 SpringBoot 기반에서 살펴보자. Mustache란? mustache 웹사이트 그냥 간단히 github에 둥지를 틀고 있다. 너무나 썰렁해서 유지보수는 돼나? 싶을 정도다 ㅎ {..
[mustache] spring boot와 mustache 1SpringBoot에서는 was에 종속적인 JSP를 더 이상 기본으로는 지원하지 않는다. 물론 추가적인 설정을 통해서 사용할 수는 있지만 기본에서 빠진 녀석을 억지로 데려다가 사용하기는 왠지 꺼림직 하다. (암묵적으로 자바 진영의 웹 생태계를 지배하는 Spring의 위력이 새삼 느껴진다.) 이제 SpringBoot에서 미는 녀석들은 Thymeleaf, FreeMarker, Mustache가 있다. 이중 컨셉만 바꾼다면 가장 배우기 쉬운 녀석이 Mustache인것 같다. 이번 포스트에서는 넘나 간단한 Mustache 사용법을 SpringBoot 기반에서 살펴보자. Mustache란? mustache 웹사이트 그냥 간단히 github에 둥지를 틀고 있다. 너무나 썰렁해서 유지보수는 돼나? 싶을 정도다 ㅎ {..
2022.03.28 -
처음 웹 프로그램을 하다보면 tomcat을 사용하면서 자주 접하는 오류가 바로 8080 포트를 다른 녀석이 점유하고 있어서 tomcat을 실행할 수 없다는 내용이다. 문제의 원인은 기존에 떠있던 tomcat이 좀비처럼 8080 포트에서 버티고 서있기 때문에 새로운 tomcat 서버가 실행하지 못하는 문제이기 때문에 기존의 tomcat을 종료하고 실행하면 되는 간단한 문제이다. 이번 포스트에서는 프로세스를 죽이는 2가지 방법에 대해서 살펴보자. 프로세스 죽이기 작업관리자 확용 먼저 작업 관리자에서 해당 작업을 끝내줄 수 있다. window 기준으로 [ctrl]+[alt]+[del]을 입력해서 작업 관리자로 이동 후 세부 정보에서 java.exe인 작업의 pic를 확인하고 하단의 작업 끝내기 버튼을 이용해서..
[web] Web server failed to start. Port 8080 was already in use처음 웹 프로그램을 하다보면 tomcat을 사용하면서 자주 접하는 오류가 바로 8080 포트를 다른 녀석이 점유하고 있어서 tomcat을 실행할 수 없다는 내용이다. 문제의 원인은 기존에 떠있던 tomcat이 좀비처럼 8080 포트에서 버티고 서있기 때문에 새로운 tomcat 서버가 실행하지 못하는 문제이기 때문에 기존의 tomcat을 종료하고 실행하면 되는 간단한 문제이다. 이번 포스트에서는 프로세스를 죽이는 2가지 방법에 대해서 살펴보자. 프로세스 죽이기 작업관리자 확용 먼저 작업 관리자에서 해당 작업을 끝내줄 수 있다. window 기준으로 [ctrl]+[alt]+[del]을 입력해서 작업 관리자로 이동 후 세부 정보에서 java.exe인 작업의 pic를 확인하고 하단의 작업 끝내기 버튼을 이용해서..
2022.03.24 -
eclipse 또는 STS에서 spring legacy 프로젝트를 생성 후 web.xml에 무언가를 설정하려 하면 자동완성이 잘 되지 않아 난감할 때가 있다. 어느덧 자동완성에 익숙해진 우리는 이런 경우 손가락이 멈춰버리게 된다. schema의 변경 원인은 web.xml에서 사용하는 namespace들의 값과 schema location이 변경되었기 때문이다. root element인 web-app을 아래와 같이 변경한다. 이제 반가운 팝업을 다시 확인할 수 있다.
[web]web.xml의 태그 자동완성이 안될 때eclipse 또는 STS에서 spring legacy 프로젝트를 생성 후 web.xml에 무언가를 설정하려 하면 자동완성이 잘 되지 않아 난감할 때가 있다. 어느덧 자동완성에 익숙해진 우리는 이런 경우 손가락이 멈춰버리게 된다. schema의 변경 원인은 web.xml에서 사용하는 namespace들의 값과 schema location이 변경되었기 때문이다. root element인 web-app을 아래와 같이 변경한다. 이제 반가운 팝업을 다시 확인할 수 있다.
2021.10.23