전체 글158 IP 주소란? IP는 컴퓨터가 연결된 네트워크 끝단의 주소다. 기기나 인터넷에 접속한 곳에 네트워크상 위치다. IPv4 - 172.28.39.53 0~255까지 숫자가 4개가 이어진 형식 -> max 46억개 공유기를 사용하는 학교나 회사 사무실 등에서는 한 공인 IP아래 기기마다 사설 IP가 부여되는 식으로 인터넷을 사용한다. 10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255 이 안에 들어가면 사설 IP라고 보면 된다. 외부에선 private IP로 접근 불가능 -> 서버는 공인 IP가 필요 포트 포워딩 공유기 설정으로 공인 IP에 포트를 개방해서 내부의 사설 IP마다 하나씩 연결 가능 DMZ 공인 IP의 모든 포트들.. 2022. 7. 28. CORS란? 브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한합니다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요합니다. 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절합니다. 이런 허락을 구하고 거절하는 메커니즘을 CORS(Cross-Origin Resource Sharing)이라고 부릅니다. cross-origin은 다음 중 한 가지라도 다른 경우를 말합니다(origin이 다른 경우). 프로토콜 - http와 https는 프로토콜이 다르다. 호스트 - www.11st.co.kr과 m.11st.co.kr은 다르다. 포트번호 - 8080포트와 8765포트는 다르다. CORS가 없이 모든 곳에서 데이터를 요청할 수 있게 되면, 다.. 2022. 7. 26. Java - ThreadLocal ThreadLocal이란 자바에서 제공하는 동시성 문제를 해결하는 방법이다. 쉽게 생각하면 한 스레드 내에서 공유하는 전역 변수라고 할 수 있을 것 같다. 싱글톤으로 등록된 스프링 빈은 객체의 인스턴스가 애플리케이션에 딱 1개만 존재하게된다. 그러면 이 인스턴스의 필드를 여러 쓰레드가 동시에 접근할 때 문제가 발생할 수 있다. (읽기만 하면 문제 없음. 수정 시 문제) 쓰레드 로컬을 사용하면 각 쓰레드마다 별도의 내부 저장소를 제공해서 같은 인스턴스의 쓰레드 로컬 필드에 접근해도 문제 없다. -> 싱글톤 객체에서 동시 접근 가능성이 있는 필드를 쓰레드 로컬로 생성해주면 된다! java.lang.ThreadLocal //private String name; //기존 코드의 필드 private ThreadL.. 2022. 7. 2. Java - Record란? 레코드란? 불변 데이터 객체를 쉽게 생성할 수 있도록 하는 새로운 유형의 클래스 JDK14에서 preview로 등장하여 JDK16에서 정식 스펙으로 포함 JDK 14부터는 반복적인 데이터 클래스를 레코드로 대체할 수 있습니다. 레코드는 필드의 유형과 이름만 필요로 하는 변경할 수 없는 데이터 클래스입니다. equals , hashCode , toString 메소드, private , final 필드, public 생성자는 자바 컴파일러에 의해 생성됩니다. 일반 Java 클래스와 마찬가지로 레코드에 정적 변수와 메서드를 포함할 수도 있습니다 . 레코드의 제한 레코드는 암묵적으로 final 클래스이고, abstract 선언 불가 다른 클래스를 상속 받을 수 없음(extends X) 인터페이스 구현(imple.. 2022. 6. 24. Zipkin Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템 (오픈 소스) Google Drapper 에서 발전하였으며, 분산 환경에서의 시스템 병목 현상 파악 Collector, Query Service, Databasem WebUI로 구성 Spring Cloud Sleuth 스프링 부트 애플리케이션을 Zipkin과 연동 요청 값에 따른 Trace ID, Span ID 부여 Trace와 Span Ids를 로그에 추가 가능 2022. 6. 17. Resilience4j Resilience4j는 경량화돼있고, Netflix Hystrix를 대신해서 fault tolerance library 역할을 한다. fault tolerance란 에러가 발생하더라도 정상적인 서비스처럼가용할 수 있는 능력을 말한다. org.springframework.clound spring-cloud-starter-circuitbreaker-resilience4j @Bean public Customizer globalCustomConfiguration(){ CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom() //CircuitBreaker를 열지 결정하는 Failure Rate .failureRateThreshold(4.. 2022. 6. 17. Apache Kafka vs Amazon SQS https://stackshare.io/stackups/amazon-sqs-vs-kafka https://blog.iron.io/amazon-sqs-vs-apache-kafka/ 카프카 처리 속도가 빠름 분산 처리에 좋음 -> 대용량 트래픽에 대응 결함이 적음 오픈소스이기에 레퍼런스 많음 분산, 내결함성, 높은 처리량을 지원하는 pus-sub 메시징 시스템 distributed, partitioned, replicated된 커밋 로그 서비스 구독 방식의 비동기식 구성 확장 가능한 솔루션 - Kafka는 분할된 로그 모델을 사용하여 많은 양의 데이터를 여러 서버에 분산할 수 있습니다. 따라서 단일 서버의 용량 이상으로 시스템을 확장할 수 있습니다. 빠른 스트림 - Kafka의 도움으로 데이터 스트림을 분리.. 2022. 5. 27. MicroService란? Antifragile Auto scaling (자동 확장성) Microservices - 모듈을 독립적 개발, 통합 Chaos engineering - 불확실성에도 안정적으로 대처 Continuous deployments - 지속적 통합, 배포 Cloud Native Architecture 확장 가능한 아키텍처 탄력적 아키텍처 장애 격리 Cloud Native Application MicroServices CI / CD DevOps Containers 지속적인 통합, CI - 통합 서버, 소스 관리, 빌드 도구, 테스트 도구 - Jenkins, Team CI, Travis CI 지속적 배포 - Continuous Delivery - Continuous Deployment = 자동 반영 = Continuo.. 2022. 5. 26. MongoDB 기본 개념에 대해 알아보기 (정리) https://www.youtube.com/watch?v=81JnYGT2HVQ MongoDB 소개 key-value와 다르게 여러 용도로 사용이 가능 (범용적) 스키마를 고정하지 않는 형태 - 스키마 변경으로 오는 문제 없음 - 데이터를 구조화해서 json 형태로 저장 (데이터를 key-value화 저장) Join이 불가능하기ㄷ 때문에 join이 필요없도록 데이터 설계 필요 MongoDB 특징 메모리맵 형태의 파일엔진 DB이기 때문에 메모리에 의존적 - 메모리 크기가 성능을 좌우 - 메모리를 넘어서는 경우 성능이 급격히 저하됨 쌓아놓고 삭제가 없는 경우가 적합 - 로그 데이터 - 이벤트 참여 내역 - 세션 트랜잭션이 필요한 금융, 결제, 빌링, 회원 정보 등에는 부적합 (이런 것들은 RDBMS 사용) 도.. 2022. 5. 13. Spring - @Component와 @Service, @Controller의 차이 @Component Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 어노테이션이다. 주로 DI를 위해 사용된다. @Controller WebMVC 코드에 사용되는 어노테이션이다. @RequestMapping 어노테이션을 해당 어노테이션 밑에서만 사용할 수 있다. @Service 비즈니스 로직이나 repository layer를 호출하는 함수에 사용된다. 하지만 @Component에 추가된 기능은 없다. @Repository Annotation based Configuration, @Repository의 작업은 플랫폼 별 예외를 잡아서 Spring의 통합 검사되지 않은 예외 중 하나로 다시 던지는 것입니다. @Service와 @Component의 기능상 차이는 없지만 관점에 더 연관.. 2022. 5. 12. 이전 1 2 3 4 5 6 ··· 16 다음