TIL101 [AWS 2024 Summit] 뒤늦은 후기, 참가한 세션 공유 참가 후기작년에 참가했던 AWS 2023 Summit 참가 경험이 좋았어서 올해에는 2일 모두 참여하고 싶었는데,가고싶다고 하니 팀, 회사에서 흔쾌히 보내주셔서 올해는 5/16,17 2일 모두 참가할 수 있었다. 1달하고 조금 지났지만 엄청 과거의 일처럼 느껴지는데, 색 바랜 기억을 뒤져 적어보겠다. 1일차작년의 경우 굳이 일찍 가서 기조연설부터 들어야 하나라는 생각이 있어 첫번째 세션 시간에 맞추어 갔는데, 기조연설을 들은 팀원분의 후기가 좋았어서 이틀 모두 기조연설부터 들으면서 시작하였다. 첫날에는 9시 반 시작이니깐 9시쯤까지 도착하니 연설을 하는 홀이 아니라 입장하고 바로 보이는 큰 공간에서 스크린을 통해 연설을 봐야 했다. 이게 상당한 디메리트 였는데, 우선 해당 공간에서 연설을 중계하는데 .. TIL/AWS 2024. 7. 7. [Oracle] APPEND 힌트와 Direct Load Insert APPEND Hint란? 공식 문서의 APPEND Hint 정의 💡 The APPEND hint instructs the optimizer to use direct-path INSERT with the subquery syntax of the INSERT statement. Conventional INSERT is the default in serial mode. In serial mode, direct path can be used only if you include the APPEND hint.Direct-path INSERT is the default in parallel mode. In parallel mode, conventional insert can be used only if you spe.. TIL/DB 2024. 2. 14. [Java] Effective Java 3/E 3장 item 21~25 Item 21: 인터페이스는 구현하는 쪽을생각해 설계해라 디폴트 메소드를 통해 기존 인터페이스에 메소드를 추가할 수 있음 유용하다만 기존 구현체와 충돌하지 않는지에 대한 고려 필요함 Item 22: 인터페이스는 타입을 정의하는 용도로만 사용하라 상수 인터페이스는 안티 패턴임 상수 클래스는 인스턴스할 수 없는 유틸리티 클래스로 만들어 사용하자) public class Constants { private Constants(){} // 인스턴스화 방지 public static final int ONE = 1; } Item 23: 태그 달린 클래스보다는 클래스 계층 구조를 활용하라 public class TagClass { enum Type { HOT, COLD } final Type type; String h.. TIL/Java 2024. 1. 20. [Java] Effective Java 3/E 4장 item 15~20 Item 15: 클래스와 멤버의 접근 권한을 최소화하라 public 으로 나오는 것은 유지 보수, 하위 버전 호환의 책임 존재 외부에서 접근할 수 있는 내용은 최소화하자 public 클래스의 인스턴스 필드는 되도록 public 아니어야 함 public 가변 변수를 가진다면 일반적으로 Thread-Safe 하지 않음 Item 16: public 클래스에서는 public 필드가 아닌 접근자 메소드 사용하라 public 필드 바로 접근 X getter 쓸 것 setter는 정말 필요시에 쓸 것 Item 17: 변경 가능성을 최소화하라 객체 상태 변경하는 메소드 제공X 클래스 확장할 수 없도록 모든 필드 final 으로 선언 모든 필드 private 으로 선언 자신 외에는 내부의 가변 컴포넌트에 접근 불가 불변.. TIL/Java 2024. 1. 18. 시스템간 통신 중 요청 소실 에러 상황 테스트 환경에서 테스트 완료한 서버를 운영환경에 배포하였을 때 API 호출시 요청이 소실되는 에러가 발생 로그 시스템 상으로는 요청 수신 요청 송신 까지 찍혀 있는 상황 정상 Case의 경우 요청 수신 요청 송신 응답 수신 응답 송신 까지 찍혀 있어야 했다. 해결 과정 2번의 송신까지 로그가 찍혀있는 상황인데 3번의 응답 수신이 이뤄지지 않은 것으로 보아 에러가 발생했을 가능성이 있는 포인트 API 게이트웨이에서 송신 문제 Server2에서 요청 수신 문제 Server2에서 요청 처리 중 응답을 안해버린 경우 Server2에서 응답 송신 문제 API 게이트웨이에서 로그 쌓기 전 수신 문제 정도로 볼 수 있었고 우선 내가 바로 확인 할 수 있는 Server2의 로그를 확인해본 결과 요청을 처리하.. TIL/삽질 기록소 2023. 12. 3. [Java] Effective Java 3/E 3장 item 10~14 3장 모든 객체의 공통 메소드 item 10: equals는 일반 규약을 지켜 재정의하라 equals 메소드를 재정의하며서 발생할 수 있는 문제를 회피하는 방법은 재정의하지 않는 것 equlas 메소드를 재정의하지 않으면 오직 자기 자신과만 같게 된다. equals 메서드를 재정의하지 않는 것이 최선인 Case 각 인스턴스가 본질적으로 고유하다. 인스턴스의 논리적 동치성을 검사할 일이 없다. 상위 클래스에서 재정의한 equals가 하위 클래스에도 딱 들어맞는다. 클래스가 private이거나 package-private이고 equals 메소드를 호출할 일이 없다. equals 메소드를 재정의해야하는 Case 객체 식별성, 물리적으로 두 객체가 같냐? 가 아니라 논리적 동치성, 논리적으로 두 객체가 같냐? .. TIL/Java 2023. 11. 14. Spring Batch 성능 최적화(1) Batch - 특정 시간에 많은 데이터를 일괄 처리 일괄 생성 : Read - Create - Write 일괄 수정 : Read - Update - Write 통계 : Read GroupBy - Write 기술 스택: Spring Batch, MySQL, Spring Cloud Data Flow, Redis, Kubernetes 대량 데이터 Read Reader 개선이 큰 부분 차지 보통 복잡한 조회 조건으로 데이터를 가져오는 것이 성능에 크게 영향 줌 읽을 때는 항상 Chunk Processing 데이터의 양이 늘어나면 한번에 모든 데이터를 받을 수 없음 ⇒ Chunk 단위로 받는다 1000만건 = 1000 * 만개의 chunk 그래서 Chunk 단위로 어떻게 읽어올건데? Pagination Reade.. TIL/Spring & Spring Batch 2023. 10. 28. [토막글] 생산성에 대한 이야기 개발자의 애질리티 (toss.tech) 개발자의 애질리티 이 글은 토스페이먼츠에 입사하신, 혹은 입사를 고려 중인 개발자분들을 위해 작성된 글입니다. 애자일하게 일한다는 것은 어떠한 의미일까요? toss.tech 위의 글을 읽고 느낀 점이 좀 있어서 간략하게 글로 남기고자 했다. waterfall vs agile 최근에 진행한 프로젝트의 경우 waterfall 방식으로 진행되었다. 초기의 설계를 잡고 이에 대한 보고를 하고 피드백을 받고 설계를 고치고 요구사항을 정리하는 등의 사전 작업을 했다. 그리고 개발을 들어가며 이에 대한 구현을 시작했는데, 이를 진행하며 설계가 잘못되었다는 것을 느끼는 포인트가 많았다. 내가 도메인에 대한 이해가 부족했든, 설계에 대한 경험이 부족했든 결과적으로 설계가 잘못되어 .. TIL/TIL 2023. 10. 28. [JAVA] Java Version 8 vs 17 처음 자바를 접했을 때 영문도 모른채 조교의 안내대로 JAVA 버전 8을 설치하여 사용하다보니 자연스럽게 사용해왔던 8버전, 그리고 현재 스프링 부트 3.0을 사용하기 위해 버전 업그레이드를 따라가면서 사용하게 된 17버전에 대한 차이를 알아보며 내가 자연스럽게 사용하고 있는 기능에 대한 복습과 놓치고 있던 점에 대해 학습하고자 한다. 개요 JAVA 8 Lambda Stream interface default Method 인터페이스가 추상메소드말고 default 선언으로 메소드를 미리 선언할 수 있는 기능 ⇒ 추후에 overriding 가능 Optional LocalDateTime JAVA 17 Pattern Matching for Switch(17에서 등장) Sealed Classes (15에서 등장,.. TIL/Java 2023. 10. 21. [CS] RESTful API란? Rest API 라는 말은 많이 들어봤고 막연하게 사용할 때 느꼈을 때 (주로 Json 형태의)데이터를 주고 받기 위해 정한 규칙, 즉 프로토콜이라고 생각했었다. 그리고 찾아볼수록 많은 정의들을 찾을 수 있었고 다들 비슷한 이야기를 하지만 조금씩 표현이 다르고 내용이 다른 점도 존재하였다. 아마 내가 적어내린 것도 그중 일부가 되겠지만 내가 이해하기 쉬운대로 정리해보려고 한다. REST == REpresentational State Transfer == 표현된 (자원의) 상태 전송 REST 자체는 API 작동 방식에 대해 조건을 부과하는 아키텍처 REST 6 가지 원칙 Uniform Interface : 서버가 표준형식으로 정보를 전송함 자원에 대한 식별 => 리소스 식별자 사용 표현을 통한 자원에 대한.. TIL/CS 2023. 10. 21. 멱등성 API? 멱등(Idempontent)성, 멱등성 API란? 첫 번째 수행한 결과와 그 후 여러 차례 반복하여 수행한 결과가 동일한 작업 또는 그 속성을 의미함 ⇒ 즉 멱등한 API라면 2번 이상 요청해도 결과가 처음 요청과 똑같이 돌아와야 한다. 단순히 돌아온 값만 같을 뿐만 아니라 DB에도 영향 없어야 함. ⇒ 의도하지 않은 문제 발생시키지 않고 요청을 재시도할 수 있음 예를 들어 이미 HTTP 메소드들 중에서 GET, PUT 같이 여러번 호출해도 매번 같은 리소스로 대체되거나 조회되는 경우 멱등성이 보장된 메소드라고 볼 수 있음 반면, 서버 데이터를 변경하는 POST, PATCH 의 경우 호출할 때마다 응답이 달라지기에 멱등하지 않음 API 통신에 멱등성을 보장하고자 한다면? 멱등키를 API 요청에 포함하자 .. TIL/BackEnd 2023. 10. 15. [Spring-Batch] 클라우드 환경에서의 Spring Batch 클라우드 환경에서 Batch 프로그램이 고려해야할 issue들과 Spring Batch는 어떻게 접근하고 있는가에 대한 글 출처: Spring Batch on Kubernetes: Efficient batch processing at scale Issue1: Fault Tolerance DB, Message brokers, Web 서비스 등 다른 시스템들과의 연결이 필요한 배치의 경우 언제든 프로세스가 돌고 있던 노드가 죽고 새로은 노드로 대체될 수 있기에 Fault-Tolerant하게 만들어져야 한다. ⇒ 트랜잭션 관리, Skip 과 retry 매커니즘을 제공 Issue2: Robustness 배치 작업을 중복 실행하는 것이 치명적인 경우가 존재하는데, 쿠버네티스의 경우 같은 Job을 중복 실행하는 점.. TIL/Spring & Spring Batch 2023. 10. 14. 이전 1 2 3 4 ··· 9 다음 반응형