분류 전체보기 183

[Spring] AOP란

이번 포스팅에서는 AOP (Aspect-Oriented Programming) 에 대해서 기술할 것 1. AOP란, 관심사 분리라는 개념을 갖고 객체지향프로그래밍을 통해 더욱 객체지향적으로 만들어주는 기술 쉽게 말하면, 대상을 바라보는 방향을 바꿔보자는 관점 각각의 Service는 핵심기능 관점에서 바라보았을 때, Board, User, XXX 즉, 공통된 요소가 없음. 이런 관점에서는 각각의 Service는 독립적인 각자의 코드를 구현하고 있음. AOP는 이런 관점을 돌려서 부가기능이라는 것에 초점을 두도록 도움 부가기능 관점에서 각각의 Service는 before(), after()라는 메소드가 공통되는 것을 알 수 있음. 즉, AOP는 기존의 객체지향적인 관점에서 바라보던 것을 다르게 하여 부가기능..

SPRING 2021.01.27

[Windows] 윈도우 방화벽 특정 포트 IP 허용

이번 포스팅에서는 windows 방화벽 특정 포트 IP만 허용하는 방법에 대해서 기술 # Windows 방화벽 정책 구성 예) - 출발지 IP : 192.168.0.1 (허용할 IP) - 도착지 IP : 192.168.65.139 (방화벽에서 정책을 반영할 서버) - 포트 : 443 (SMB, 랜섬웨어 관련 포트) - 접근 방법 ① 제어판 > Windows 방화벽 > 고급 설정 ② Windows 키 + R > wf.msc - 방화벽 설정 방법 ① Windows 방화벽 창 > 인바운드 규칙 > IP허용 정책 적용할 방화벽 정책을 더블클릭 ② 영역 탭에서 원격IP 주소 > 다음 IP주소 라디오 버튼을 선택 후 추가 버튼을 클릭 허용할 IP를 입력 후 확인을 선택 Windows 방화벽 정책 적용 시 참고사항 ..

기타 2021.01.27

[Server] 웹 서버와 WAS

1. Web Server HTTP 프로토콜을 기반으로 Web Client(Browser)로부터의 요청을 서비스하는 기능을 담당하는 프로그램 쉽게 말하면, 클라이언트로부터 HTTP 요청을 받아 HTML 문서와 같은 웹 페이지를 반환하는 프로그램 1.1. 웹서버의 역할 1) 정적 컨텐츠(html, img, xml, css, js, file 등)에 대한 처리를 담당하며, CGI 프로그램의 요청도 처리함 2) 클라이언트로부터 동적 컨텐츠 요청 받을 때 WAS(Web Application Server)에게 해당 요청을 전달하 고 WAS에서 응답한 결과를 클라이언트에게 전달함 예시) apache, nginx, IIS 2. Web Application Server (WAS) 클라이언트가 HTTP 통신을 통해 사용자 ..

SERVER 2021.01.27

[Java] Ant를 이용한 어플리케이션 빌드 자동화

이번 포스팅에서는 Ant를 이용한 어플리케이션 빌드 자동화에 대해 알아보기 1. Ant란, 자바 기반의 빌드툴로 리눅스의 make와 비슷한 기능을 제공하고 있음 하지만 Ant는 다음과 같은 면에서 make와 같은 쉘기반의 빌드툴과는 다름 ① Ant는 자바기반이기 때문에 플랫폼에 독립적으로 실행 ② 복잡할 쉘 명령어 대신에 XML 기반의 설정 파일을 사용하기 때문에 작업을 설정하는 것이 복잡하지 않음 ③ 미리 정의된 태스크(Task)를 사용하여 매우 쉽고 빠르게 배치 작업을 설정할 수 있음 ④ 새로운 태스크의 추가를 통해서 처리 가능한 배치 작업의 확장이 가능 플랫폼에 독립적이기 때문에 어느 운영체제건 같은 프로젝트를 진행할 수 있게 되며, 쉘 스크립트와 비교할 수 없을 정도로 간단한 XML 기반의 빌드 ..

LANGUAGE/JAVA 2021.01.27

[Javascript] onload, ready

1. onload VS ready 1.1. onload 1.1.1 onload (JavaScript) 문서의 모든 콘텐츠(images, script, css, etc)가 로드된 후 발생하는 이벤트 - DOM의 standard 이벤트로, html의 로딩이 끝난 후에 시작. 화면에 필요한 모든 요소들이 웹 브라우저 메모리에 모두 올려진 다음 실행되며 화면이 그려진 다음 메시징이나 이미지가 관련 요소가 모두 올려진 다음의 애니메이션에 적합 - 외부 링크나 파일 include시 그 안에 window.load 스크립트가 있으면 둘 중 하나만 적용 window.onload = function(){ //실행될 코드 } - 문서에 포함된 모든 콘텐츠가 로드된 후에 실행되기에 불필요한 로딩시간이 추가될 수 있음 - 전체..

LANGUAGE/JAVASCRIPT 2021.01.27

[Java] java security 관련 오류 정리

1. java security 오류 종류 1.1. java.security.InvalidKeyException: Invalid key length → 설정해놓은 암호화 비밀키의 길이와 맞지 않음 1.2. javax.crypto.BadPaddingException: Given final block not properly padded → 암호화된 구문을 복호화할 때 발생할 수 있는 오류로, 암호화 때 사용한 비밀키와 복호화 할 때의 비밀키가 일치하지 않았을 때 발생 1.3. java.security.InvalidKeyException: Illegal key size → java 기본 패키지의 key size 오류 2. 해결방안 아래 링크로 들어가서 Java Cryptography Extension(JCE) ..

LANGUAGE/JAVA 2021.01.27

[Apache] Logback

1. logback : log4j를 토대로 새롭게 만든 logging 라이브러리 slf4j를 통해 연관 라이브러리들이 다른 logging framework를 쓰더라도 logback으로 통합할 수 있음 logback을 이용하여 로깅을 사용하기 위해서 필요한 주요 설정 요소로는 logger, appender, encoder의 3가지가 있음 1.1. logback 주요 설정 3요소 · logger : 실제 로깅을 수행하는 구성요소로 level 속성을 통해서 출력할 로그의 레벨을 조정 · Appender : 로그 메시지가 출력될 대상을 결정하는 요소 · Encoder : Appender에 포함되어 사용자가 지정한 형식으로 표현될 로그 메시지를 변환하는 역할을 담당하는 요소 1.2. logback 설정파일 작성 ..

SERVER 2021.01.27

[Apache] Log4J

1. Log4J : Logging을 위한 라이브러리. 현재는 Apache의 서브프로젝트 1.1. Log4j 특징 계층(category) 로거라고 불리는 것인데, 로거를 사용할 때, 카테고리라는 이름을 붙여서 사용 이렇게 함으로써 여러 소스로부터 출력되는 로거들 중 필요한 부분만을 로깅할 수 있음 : logger name, level 등 사용자 로그설정을 통해서 필요한 부분, 특정한 경우만 로깅이 가능 그리고 로그 레벨(level)을 설정한다는 것은 FATAL/ERROR/WARN/INFO/DEBUG/ TRACE 등으로 레벨을 나누어 필요한 레벨의 로그만을 출력할 수 있음. 즉, 개발할 때 는 DEBUG 로그를 남기고, 운영할 때는 DEBUG 로그를 출력하지 않게 할 수 있음. 1.2. Log4j의 3요소 ..

SERVER 2021.01.26

[보안] openSSL install and setting

1. OpenSSL 1.1. SSL 인증서 : HTTPS 통신을 위한 SSL 인증서 발급 SSL(Secure Socket Laye) : 웹서버와 브라우저 사이의 보안을 위해 만들어짐 대칭키를 이용하여 암호화 통신을 함 따라서, SSL 인증서란, 해당 웹 사이트가 해킹에 신뢰 있는 사이트인지, 안전한 통신을 하는 사이트인지를 구분하기 위해 누군가 이 사이트가 신뢰 있는 사이트라고 인증을 해주기 위한 인증서로, 인증서 소유자의 email, 소유자 이름, 용도, 유효기관, 발행기관, 공개키 등이 포함되어 있음. 1.2. openSSL 설치 : SSL 인증서를 발급받기 위해서는 openSSL이 필요 https://sourceforge.net/projects/openssl/files/latest/download?..

기타 2021.01.26