티스토리

ㄱa ㅊb
검색하기

블로그 홈

ㄱa ㅊb

bj-lee.tistory.com/m

bj-lee 님의 블로그입니다.

구독자
1
방명록 방문하기

주요 글 목록

  • AWS Fargate, 실제 사용 후 AWS Fargate를 직접 사용해보면서 느낀 점들을 바탕으로 좀 더 객관적인 정보를 드리고자 합니다. 실제 개발자의 시각에서 바라본 Fargate의 장단점과 활용 시 고려해야 할 점들을 중심으로 정리해 보았습니다. Fargate의 장점인프라 관리 부담 감소: EC2 인스턴스 관리, 클러스터 설정 등 복잡한 인프라 관리 작업 없이 컨테이너 실행에만 집중할 수 있습니다. 덕분에 개발 생산성이 향상되고, 운영 오버헤드가 줄어듭니다.유연한 확장성: 필요에 따라 컨테이너를 즉시 생성하거나 삭제할 수 있어 유연한 확장이 가능합니다. 특히 트래픽 변동이 큰 서비스의 경우 자동 스케일링 기능을 활용하면 비용 효율적으로 시스템을 운영할 수 있습니다.높은 가용성: 다중 가용 영역에 걸쳐 컨테이너를 분산하여 실행하므로 높.. 공감수 0 댓글수 0 2024. 8. 11.
  • Jackson - 다형성 유형의 serialize, deserialize 사용하기 spring 에서 기본적으로 json 을 직렬화, 역직렬화하는데 사용하는 jackson 을 사용할때 interface 나 abstract class 를 상속받는 클래스들의 역직렬화하는 방법을 정리합니다. // 역직렬화 대상인 인터페이스 @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "type") @JsonSubTypes(value = { @JsonSubTypes.Type(value = BlockA.class, name = "a"), @JsonSubTypes.Type(value = BlockB.class, name = "b") }) public interface IBlock { } .. 공감수 0 댓글수 0 2021. 10. 26.
  • Jenkins 설치(docker image) Jenkins 에서 잘 사용하지 않는 기능을 테스트를 할 일이 생겼다. 실제 팀환경에서 테스트할건 아니라서 docker 를 이용하기로 했다. docker hub 의 공식 jenkins 이미지를 검색하면 https://hub.docker.com/_/jenkins 로 확인이 되고 해당 사이트를 접속하면 DEPRECATION NOTICE 가 우릴 반긴다...(제길..) 대략 내용은 '더이상 지원없으니 사용하지 마세요.' 이다. 더보기 docker image 가 필요하신 분이면 그냥 docker pull jenkins/jenkins 을 통해 image pull 하면 됩니다. 아래쪽의 링크된 프로젝트 사이트를 통해 확인해보면 공식 repo 라고 따로 안내가 되어있으니 해당 repo 로 접근해야한다.(뭐가 다르겠어.. 공감수 0 댓글수 0 2021. 7. 28.
  • @DataJpaTest 할 때의 주의 사항 저는 테스트할때 보통 test/resources 에 application-test.yml 을 따로 설정해두고 테스트를 진행합니다. 그런데 아래와 같은 상황이 생겨서 한참 고민했는데 역시나 사람이 문제였습니다. @DataJpaTest 인데 Unable to start ServletWebServerApplicationContext....가 뜬다! 분명히 JPA 테스트를 위해 @DataJpaTest 를 수행하는데 자꾸 servlet 관련 에러가 발생했고.... 왜 그러지? 뭔가 잘못됐나? 라고 하면서 test 리소스를 계속 찾았지만 이유를 찾지 못하여 급기야..아래처럼 처리하고 테스트를 진행했습니다. @DataJpaTest(properties = "spring.main.web-application-type=n.. 공감수 0 댓글수 0 2021. 2. 2.
  • Spring REST 에서의 Global Exception spring-mvc 에서의 global exception 에 대해 메모해놓으려합니다. 언제나 그랬듯이 spring ref. 문서를 찾는게 가장 좋으니 간략하게 정리하는 수준이 될 것입니다. Spring 3.2 이전에는 Spring MVC application 에서 예외를 처리하는 두 가지 주요 접근 방식이 있었습니다. 하나는 HandlerExceptionResolver, 또 하나는 @ExceptionHandler annotation 이였습니다. 둘다 분명한 단점이 있습니다. spring-boot 에서는 WebMvcRegistrations Bean 을 선언하고 이를 재정의하여 custom instance 로 제공하는 방법으로 사용할 수 있습니다. 이에 3.2부터 이전 두 솔루션의 한계를 해결하고 전체 애플.. 공감수 0 댓글수 0 2021. 1. 11.
  • logback 에서의 rolling 정책 사용시 주의사항 logback 사용시 일반적으로 특정 시간이나 용량에 따라 파일을 이동하고 압축하는 정책을 적용해서 사용한다. 이 경우 몇 가지 case 를 통해 유의해서 사용해야 할 사항에 대한 기록이다. Appender 사용 Appender 는 위임받은 이벤트에 대해 log 가 발생하면 출력스트림(console/file) 에 write 하는 역할을 한다. package ch.qos.logback.core; import ch.qos.logback.core.spi.ContextAware; import ch.qos.logback.core.spi.FilterAttachable; import ch.qos.logback.core.spi.LifeCycle; public interface Appender extends LifeCy.. 공감수 0 댓글수 0 2021. 1. 7.
  • Spring Cloud OpenFeign, 그리고 SSL OpenFeign (github.com/OpenFeign/feign) Feign 은 선언적 Web Service Client 인 오픈소스이다. 이를 이용해 우리가 Spring 에서 Service 를 DI 를 통해 호출하여 사용하는 것처럼 웹서비스 Client 를 사용할 수 있게 도와준다. Feign 은 Interface 를 만들고 annotation 을 추가하는것으로 쉽게 사용할 수 있고, encoder, decoder 를 플러그형으로 지원한다. Spring Cloud OpenFeign Spring Cloud는 Spring MVC annotation 및 Spring Web에서 기본적으로 사용되는 동일한 HttpMessageConverters를 사용하기위한 지원을 추가하고 Eureka, Spring Clo.. 공감수 0 댓글수 2 2020. 12. 29.
  • 스케줄러에 property 주입하기 1. scheduling + property spring 에서 간단하게 주기적인 작업을 처리하기 위해 scheduling 패키지를 이용하게 되는데, 이 때 변수값에 따라 주기정보를 변경적용하기 위한 방법이다. 아래는 spring 의 여느 value 주입처럼 "${}" 을 이용하여 주입을 하고 @Scheduled(cron = "${my.custom.cron}") public void sampleJob() { logger.info("========= 진행합니다. ========="); } 아래는 월요일~금요일까지 매시간 0 분 0초에 돌아가도록 설정한 application 속성 파일의 내용이다. (yml 의 경우 따옴표를 붙여야하는데 문자열에 띄어쓰기가 있을 경우 안되는 경우가 있었던 것같다...기억이..... 공감수 0 댓글수 0 2020. 12. 17.
  • Cassandra 의 간략한 특징과 timestamp 에 대해 1. 안녕 Cassandra ? 최근 업무를 진행하며 Cassandra 를 사용할 기회가 있었습니다. 나름 유명한 상태이지만 사용해본적이 없어서 여느 RDB 를 사용하듯이 사용하였는데 몇가지 문제가 있었습니다. 그중 하나가 바로 timestamp 값에 대한 핸들링이였고, 그에 대한 내용과 사용상 특징 몇가지를 정리하려 합니다. 2. Cassandra 의 사용상 특징 카산드라는 scalability와 high availability에 최적화된 대표적인 분산형 Data storage 라고 합니다. 자세한 내용은 알지도 못하고 그에 대해 다룰 글이 아니기에, 단순하게 사용상 특징 몇가지만 언급합니다. RDB 와 같은 조건 쿼리 사용상 제약 : 분산되어 있는 Key 가 있을 경우 반드시 Key 순서에 맞추어 w.. 공감수 2 댓글수 0 2020. 12. 16.
  • Sonarqube - 정적 분석, Coverage 코드 품질의 확보 흔히 지속적인 코드 품질을 확보하기 위해서는 시큐어 코딩(Secure Coding) 이란 명명아래 소스 코드에 존재할 수 있는 잠재적인 불안요소(보안 취약점)를 제거하나, 그런 것들을 고려하여 기능을 설계 및 구현하는 등의 행위가 확보되어야 한다. 미국은 일찍이 시큐어 코딩을 의무화했고, 우리나라도 2012년부터 의무제로 시행되어 공공기관의 정보화 사업 중 일부를 대상으로 시행되고 있다. https://owasp.org/# OWASP Foundation | Open Source Foundation for Application Security OWASP Foundation, the Open Source Foundation for Application Security on the main .. 공감수 1 댓글수 0 2020. 12. 1.
  • Spring Boot 의 properties 개요 properties 는 기본이면서도 설정에 가장 많이 사용하게 되는 요소입니다. 기본적으로는 .properies, .yml 등을 통해 설정할 수 있는데 관련 방법들도 많고 어떻게 써야 효과적인지도 명확하지 않습니다. 가장 많이 이용하게 되고 실제 유용한 방법들을 정리합니다. 외부화 구성(Externalized Configuration) Spring Boot 는 다른 환경에서 동일한 코드로 작업할 수 있도록 구성을 외부화 할 수 있습니다. 환경 변수, command-line arguments, 별도의 외부 파일 등을 이용할 수 있는데, 이 때 properties 의 효과가 발휘됩니다. YAML 파일, properties 파일들을 통해 지정된 속성 값은 @Value 주석을 사용하여 Bean 에 직접 주.. 공감수 1 댓글수 0 2020. 11. 16.
  • Apache Kafka 요약 kafka는 disk 기반 분산 메시징 시스템 기본 개념 · publish-subscribe 모델로 동작 · producer(발행), consumer(소비), broker(중개) 로 구성됨 · 메시지는 topic 이라는 기준으로 관리되고 topic을 발행하고 중개하여 소비하는 구조를 가짐 · topic은 세부적으로 partition 으로 분산 저장되고 해당 topic은 partition ID + offset 값으로 식별됨 · 분산환경으로 구성되어 broker 들이 클러스터로 구성되어 동작하도록 되어 있고 broker 가 단 한개이더라도 클러스터로 동작 · 범용시스템에서 제공하는 기능들은 기대하면 안되고 TCP 기반으로 오버헤드를 감소시켜 동작 · in memory 가 아닌 disk에 메시지를 저장하기에 .. 공감수 1 댓글수 0 2020. 11. 14.
  • spring boot - 전체 초기화 코드를 넣어보자 spring boot 에서는 몇가지 초기화 방법이 있다. 사용하는 사람마다 선호하는 방법이 있을테니 그것대로 사용하면 되지만 각 방법의 목적과 사용방법에 대해 정리한다. CommandLineRunner 인터페이스 사용 @FunctionalInterface public interface CommandLineRunner { void run(String... args) throws Exception; } 1.0.0 버전부터 정의된 것처럼 @FunctionalInterface 이며 해당 인터페이스를 통해 선언된 Bean 이 SpringApplication 내에 포함이 될 때 실행되어야 함을 나타내는데 사용되는 인터페이스이다. 여러 Bean 을 동일한 ApplicationContext 내에서 정의 할 수 있으며 .. 공감수 1 댓글수 0 2020. 11. 14.
  • Spring Boot 분석(구동 원리) Spring Application 실행 아래의 모든 설명은 spring-boot 2.3.5 기준으로 설명합니다. 얼마전(2020/11월기준) GA 된 2.4 는 변경사항이 있습니다. 아래의 코드를 실행하면 Spring Application 이 수행된다. 나머지 정보들은 전혀 노출되지 않는데 어떻게 그 많은 정보들을 처리하게 되는지에 대한 내용을 정리한 글이다. package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SampleApplication .. 공감수 6 댓글수 0 2020. 11. 14.
    300x250
    LIST
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.