본문 바로가기

전체 글

(69)
커넥션 풀(Connection pool)이란? 커넥션 풀(Connection Pool)이란? WAS(웹 컨테이너)가 실행 될 때 DB연결을 위해 미리 일정수의 connection 객체를 만들어 Pool에 담아 뒀다가 사용자의 요청이 발생하면 Pool에서 생성되어 있는 Connection 객체를 넘겨주고 사용자가 사용이 끝나면 Connection 객체를 다시 Pool에 반환하여 보관하는 기법이다. 커넥션 풀 동작 과정 1. 사용자가 DB를 사용하기 위하여 Connection을 요청한다. 2. Connection Pool에서 사용되지 않고 있는 Connection 객체를 제공한다. 3. 사용자가 Connection 객체를 사용 완료하면 pool로 반환한다. 웹 어플리케이션에서 커넥션 풀을 사용해서 얻는 이점 1. 서버의 부하를 줄여준다. 웹 어플리케이션..
Apache http2 적용 방법 (mod_http2)- 삽질중인 개발자 속도가 중요시되는 서비스에서 이제는 많은 기업이 HTTP2를 적용하고 있다. ( 구글 같은 경우에는 HTTP3을 적용 중이다. ) HTTP1.1과 HTTP2.0 의 차이는 대충 요약하자면 이것저것 도입해서 지연을 감소시켜 HTTP1.1 대비 속도를 증가시켰다. (httpwg.org/specs/rfc7540.html 이쪽에 자세하게 나와 있다.) mod_http2는 아파치 2.4.17 버전 이상에서 적용이 가능하다. (httpd.apache.org/docs/2.4/mod/mod_http2.html) 또한 http2를 적용하기 위해서는 ssl 이 적용되어 있어야 한다. ( mod_ssl ) 1. mod_http2 적용 방법 CentOS 7의 경우 yum install httpd를 하는 경우 아파치 2.4.6..
mod_jk를 이용한 아파치 로드밸런싱 ( 설치부터 적용까지 ) - 삽질중인 개발자 운영을 하다 보면 로드밸런싱을 적용해서 부하를 분산시켜야 하는 경우가 있는데 L4, L7 같은 장비를 사용하여 로드밸런싱을 하기에는 비용이 상당히 많이 들어 도입하기가 어려운 경우가 있다. 이런 경우에 아파치를 이용하여 톰캣(was)을 로드밸런싱을 할 수 있다. 우선 로드밸런싱 방법 중 몇가지 방법(mod_jk, proxy, 기타 등등)이 존재 하는데 proxy 방법은 httpd.apache.org/docs/2.4/mod/mod_proxy_balancer.html 해당 사이트의 examples of a balancer configuration 칸을 보고 따라 하면 바로 적용될 정도로 쉽기에 이 포스팅에서는 mod_jk를 이용해서 적용하는 방법을 포스팅한다. ( 각각의 방식에 장단점이 있다. ) 우선 mo..
java Error, Checked Exception, Unchecked Exception - 삽질중인 개발자 개발을 하다 보면 예외를 처리해야 하는 상황이 아주 많이 발생한다. 이때 예외에 대해서 정확히 알고 있어야 좋은 코드를 짤 수 있기에 예외에 대한 포스팅을 한다. 에러(Error) vs 예외(Exception) 우선 자바에서 예외는 크게 Error와 Exception으로 나뉜다. Error란 시스템 레벨에서 발생하는 심각한 수준의 오류를 뜻하며 개발자가 미리 예측하여 처리할 수 없기에 개발 시 예외 처리에 신경 쓰지 않아도 되는 부분이다. Exception이란 로직 상에서 발생하는 오류로 개발자 구현한 코드에서 발생하여 예외를 예측할 수 있으며 상황에 맞게 처리할 수 있다. 예외 클래스 구조 이러한 예외 클래스들은 최상위 클래스인 Object를 상속받은 Throwable이라는 클래스를 기반으로 Error..
Java 문자열 비교 equals, == 차이점 - 삽질중인 개발자 보호되어 있는 글입니다.
Spring Boot 이메일 인증 구현하기 - 삽질중인 개발자 - 회원가입 이메일 인증 구현하기 - 이메일 인증을 구현하는 방법에는 크게 2가지 방법이 있다. 첫 번째로 접속하면 이메일 인증이 되는 특정 URL 링크를 넘겨줘서 이메일 인증을 하는 방법이고 두 번째는 인증 코드를 이메일로 보내서 이메일 코드를 입력하게 해 인증하는 방법이다. 그중 해당 포스팅에서는 특정 URL 링크를 접속하여 이메일 인증이 되는 첫 번째 방식을 구현할 것이다. 인증 이메일을 보내는 방법으로는Gmail SMTP를 이용할 것이다. ( 네이버나 다른 서버도 설정만 바꾸면 바로 적용 가능하다. ) 우선 큰 흐름을 살펴보자 회원가입을 한 유저가 이메일 인증이 안된 회원인 경우 인증 메일을 보내기 -> 인증 메일 안에 있는 URL을 클릭 -> 해당 URL에 접속 시 유저의 이메일 인증 관련 DB..
Spring Security UserDetails, UserDetailsService 란? - 삽질중인 개발자 Spring Security - UserDetails , UserDetailsService UserDetails 란? Spring Security에서 사용자의 정보를 담는 인터페이스이다. Spring Security에서 사용자의 정보를 불러오기 위해서 구현해야 하는 인터페이스로 기본 오버라이드 메서드들은 아래와 같다. 메소드 리턴 타입 설명 기본값 getAuthorities() Collection
SheetJS 사용법 - SheetJS 엑셀 다운로드 - 삽질중인 개발자 - SheetJS 엑셀 다운로드 - 개발을 하다 보면 엑셀 파일로 다운로드할 수 있게 해야 하는 기능을 구현해야 하는 경우가 있다. 아마 가장 많이 나오는 경우가 JSON 형태의 데이터를 엑셀로 다운로드시켜주는 기능일 것이다. 이때 Javascript로 클라이언트 단에서 엑셀 다운로드를 구현하는데 이 때 사용되는 javascript 라이브러리가 SheetJs이다. SheetJS 라이브러리는 무료버전과 유료버전이 존재하는데 무료 버전에 디테일한 기능은 좀 부족하긴 해도 엑셀 데이터를 뽑아주는 기능은 문제가 없어 아주 괜찮은 라이브러리이다. 이 포스트에서는 SheetJS의 기능중 하나인 excel 파일 다운로드 기능에 대해서 포스팅할 것이다. IE6~IE9 ,IOS safari에서는 해당 기능이 정상 작동하..