반응형

전체 글 44

정적 팩터리 메서드란?

JAVA에서 정적 팩토리 메서드란 private 생성자를 만들어 new를 통한 객체 생성을 막고 static 메서드를 통해 객체 생성을 캡슐화하는 디자인 패턴을 말합니다. 기본적인 방법은 아래와 같습니다 //Item 1. 생성자 대신 정적 팩터리 메서드를 고려하라 public class StaticFactoryMethodA { // first . 이름을 가질 수 있다 private Long id; private String name; private StaticFactoryMethodA(){} public static StaticFactoryMethodA CreateStaticFactoryMethod(String name) { StaticFactoryMethodA staticFactoryMethodA = ..

아파치 카프카

데브원영님의 아파치 카프카 강의를 듣고 정리합니다. 아파치 카프카 개요 및 설명 기존 카프카 데이터 전송소스 어플리케이션과 데이터를 받는 타겟 어플리케이션 (단방향) 위의 소스 어플리케이션 개 수와 타겟 어플리케이션 개 수가 많아지기 시작 위의 상황으로 장애대응이 어려워짐.. 추후 유지보수에도 어려움이 있음 아파치 카프카 기존 카프카의 복잡함을 해결하기 위해 등장 링크드인에서 개발했으며 오픈소스 제공 소스 어플리케이션과 타겟 어플리케이션의 커플링을 약하게 한다. 토픽 → 큐 큐에 데이터 넣는건 프로듀서 큐에서 데이터를 받는건 컨슈머 고가용성으로 서버 이슈나 갑작스런 랙이 내려간다거나하는 장애 대응이 가능 빅데이터 처리는 카프카를 안쓰는 곳이 없다.. 아파치 카프카의 토픽 카프카에서는 토픽을 여러개 생성 ..

Random 보단 SecureRandom

❓ 서론 Random 을 사용하다가 생긴 버그로 고쳐본 경험.. 그 후 알아본 내용을 정리한다. 본론 에러 메세지 “Random” objects should be reused “Random" 객체는 재 사용 되어야 한다. Random 값이 필요할 때 마다 새 개체를 만드는 것은 비효율적이며 JDK에 따라 임의의 숫자가 생성되지 않을 수 있다. 효율성과 임의성을 높이려면 단일 Random을 만든 다음 저장하고 다시 사용한다. Random() 생성자는 별개의 값마다에 seed를 설정하려고 시도합니다. 그러나 일부 JDK는 현재 시간을 seed로 사용하므로 생성 된 숫자가 전혀 무작위가 아닙니다. public void noRandom() { Random rand = new Random(); // 매번 새 개체..

HTTP 웹 기본 지식 - 2편 URI

Part 2. URI , 웹 브라우저 요청의 흐름 1. URI (Uniform Resource Identifier) 1) URI, URL, URN "URI는 위치(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있다" 이 문구로 보았을 때 URI는 URL(Locator)과 URN(Name)을 포함하는 개념으로 볼 수 있다. URN은 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않아 잘 사용하지 않는다." a) URL의 예시 "URL은 리소스가 있는 위치를 지정" b) URN의 예시 "URN은 리소스에 이름을 부여 c) URI의 뜻 Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URL로 식별하는 있는 모든 것 Identifier: 다른 항복과 구분하는데..

HTTP 웹 기본 지식 - 1편 IP, TCP, UDP, PORT, DNS

Part 1. IP, TCP, UDP, PORT, DNS 개념 1. IP (인터넷 프로토콜) 역할 1) 지정한 IP 주소에 데이터를 전달한다. 2) 패킷 단위로 데이터를 전달한다. (패킷에는 출발지 IP, 목적지 IP 등의 정보가 있다) 한계 1) 비연결성 : 패킷을 받을 대상이 없거나 서비스가 불능 상태여도 패킷을 전송한다. 2) 비신뢰성 : 중간에 패킷이 사라질 수도 있고(중간에 서버가 문제가 발생해 전달이 안될 수 있음), 여러 개의 패킷을 보내면 순서대로 도착하지 않을 수 있다(먼저 전송한 패킷이 늦게 도착할 수 있음) 3) 프로그램 구분 : 같은 IP를 사용하는 애플리케이션이 둘 이상이면?.. 구분할 수 없다. 2. TCP (전송 제어 프로토콜, Transmission Control Protoc..

악성 IP 리스트 확인 및 NGINX IP차단 설정

1. 악성 IP 리스트 확인 우선 악성 IP리스트를 구해봅시다 유료버전으로 워드프레스 보안 플러그인인 워드펜스 나 iThemes Security 그리고 Sucuri Security 등이 있으며 이를 무료버전으로 사용할 시 30일 후에나 추가로 리스트를 제공하는 등 실시간으로 처리가 어려운 부분이 있습니다. 그렇다면 실시간 악성 IP LIST는 어디서 구할 수 있을까요? == > 레스큐사이버 https://rescure.me/ 에서 구할 수 있습니다. https://rescure.me/feeds.html에 접속하여 Malicious IP Blacklist 를 선택하면 실시간 악성 IP를 확인 할 수 있습니다.서버에 .txt 형식으로 저장 되어 있는걸 볼 수 있습니다. 2. NGINX 설정에서 악성 IP 차..

CORS_작성중

로컬로 api 서버 포트 8090 / 요청 서버 포트 8080 으로해서 요청을 보냈다 (ex. http://localhost:8080... -> 8090 결과는 403 forbidden .. 권한 문제였다.. 로컬에서 로컬 요청하는데 방화벽관련 문제도 아닐거고.. api 플젝에서 필터나 인터셉터 쪽에 설정된게 있는지 봤으나 별거없었다 문제점 -> CORS로 브라우저에서 요청 권한을 제한시킴 해결방안 - > springframework에서 CrossOrigin 설정하는 방안을 찾았고 @CrossOrigin 에 origins에 로컬 주소를 설정했다.. 우선 테스트에만 사용하고 운영서버로 올릴땐 제거해야하겠다.

[Spring] 기본 초기 셋팅

Spring을 사용하기 전에 간단한 개발 환경의 설정이 필요하다. 1. JDK 버전의 처리 STS를 이용해서 스프링 MVC 프로젝트를 생성하고 나면 JDK의 버전은 1.6버전을 기준으로 생성된다. JDK 1.7 이상의 버전을 사용하고 싶다면 해당 프로젝트의 'Project Facets'를 변경해주어야 한다. 프로젝트를 선택하고 마우스 오른쪽을 이용해서 Properties를 조정할 수 있다. 'Project Facets' 메뉴 조금 위쪽에는 'Java Compiler' 메뉴가 있다. 이를 이용해서 현재 프로젝트의 컴파일 환경 역시 같이 확인해주어야 한다. 2. 스프링 프레임워크의 버전 변경 스프링 프로젝트를 사용하면 가끔은 스프링의 버전을 개별적으로 설정해야되는 경우가 발생할 수 있다. http://pro..

Ireport 사용할 때 파라미터 전달 등 사용법

파라미터는 어플리케이션에서 레포트에 전달하는 값이다. 레포트 생성에 있어서 전달할 매개변수값으로 사용할 수도 있다. SQL쿼리의 조건에 들어갈 파라미터값 혹은 데이터소스만으로는 표시하기 어려운 값을 넘기기도 한다. (이미지파일의 경로나 동적으로 변하는 타이틀등) 다른 레포트 오브젝트들과 같이 파라미터도 클래스타입을 가지고 있고 레포트에서 선언되어 있어야 한다. 필드명처럼 파라메터명도 유니크해야 한다. Use as a prompt는 JasperReport에서 직접 사용되지는 않는 프로퍼티이다. 외부의 어플리케이션에서 사용하는 파라미터를 위한 특별한 플래그값이다. Default Value Expression은 파라미터를 위해 미리 정의해둔 값을 넣을수 있다. 어플리케이션에서 파라미터에 아무런값을 넣지 않았을..

반응형