전체 글143 NAS+홈서버 만들기 라즈베리파이로 만들기(2) - 준비 어떤 시스템을 구성할 때 가장 중요한 것이 용도에 맞는 설계를 하는 것이라 생각해용도를 다시 한번 리마인드 해보는 것으로 시작한다.용도개인적인 공부+취미, 실용성 있는 서버 만들어보자 개인 노트북에서 개발해서 홈서버에 배포하고 운영해보기NAS 용도 ⇒ 사진, 동영상 업로드, 다운로드 보관 관리 조회구형 컴퓨터 Vs 라즈베리파이 vs Odroid구형 컴퓨터, 노트북을 사용하는 방법도 있지만 아무래도 차지하는 부피나 전기가 더 많을 것 같아서 배제라즈베리파이에 Sata 포트가 없어서 잠시 고민But USB 3.0 포트 있으니까… USB 3 to Sata 케이블 쓰는걸로 결정 ⇒ SATA 에 비해 15% 성능 손해 본다고 하지만 라즈베리 파이가 세팅이나 운용하며 발생하는 이슈 대응이 편할 것 같아 선택DAS .. 개인프로젝트/NAS+홈서버 만들기 2024. 7. 27. NAS+홈서버 라즈베리파이로 만들기(1) - 시작 계기어쩌다가 본 유튜브 알고리즘이 건낸 의문의 영상으로 시작했다홈서버 구축을 적극 추천하는 이유. 학습과 경험은 기본, 월5000원으로 초기서비스 운영까지? (youtube.com) 사실 NAS에 대해서는 과거에도 약간 갖고 싶다는 생각은 많이 했던 적이 있었는데, 솔직히 효용 보다는 귀찮음과 비용의 압박으로 실행에 옮기지는 않았다. 사실 NAS를 만든다고 했을 떄 가장 많이 들은 이야기인데, 왜 네이버 NBox, 아이클라우드 등 클라우드 서비스 업체가 많은데 NAS를 만드냐? 라고 했을 때, 개인적인 생각으로는 클라우드에 있는 데이터는 아무래도 좀 불안한 것 같다. 요금만 잘내면 전문가의 관리를 받으면서 잘 보관되어 있겠지만 느낌이 데이터가 다른 사람의 주도권 아래에 있는 것이 별로였다. 다만 내가.. 개인프로젝트/NAS+홈서버 만들기 2024. 7. 14. [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. 23년 정리 및 24년 목표 23년만큼 정신없이 지나간 해가 없었던 것 같다. 졸업, 취준, 대외활동 3박자로 정신이 하나도 없었던 22년을 뛰어넘을 수 없을 것이라 생각했는데 눈 떠 보니 24년이 되어 있는 느낌이라고 해야하나... 이러다가는 내가 나아가는 것이 아니라 흘러가는대로 흘러가게 될 것 같았다. 그래서 23년 한 해 어떤 것을 했고, 어떤 점이 아쉬웠는지, 어떤 점이 좋았는지 리뷰하고 24년 목표와 방향성을 적어보려고 한다. 23년 한 것 (회사) 회계 시스템 담당으로 업무 배정 & 인수인계 받기 (회사) 신 영업회계 시스템 개발 및 배포 (회사) Aws Summit 참가, OpenShift 교육 수료 (공부) 책 읽기 (Effective Java, Clean Code) (공부) Spring Batch 관련 공부 (여행.. 주저리주저리 2024. 1. 6. 시스템간 통신 중 요청 소실 에러 상황 테스트 환경에서 테스트 완료한 서버를 운영환경에 배포하였을 때 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. 이전 1 2 3 4 ··· 12 다음 반응형