'java' 태그의 글 목록

공부하는 개발자

about 오늘도 뚝딱🔨 뚝딱 하는 주니어 개발자👩🏻‍💻

북마크

고정글

java 40

최근 글

반응형
백엔드 개발자가 반드시 잡는 예외 모음 (feat. IDE가 시키는 try~catch 탈출)

백엔드 개발자가 반드시 잡는 예외 모음 (feat. IDE가 시키는 try~catch 탈출)

네트워크 타임아웃 예외가 발생하는 원리 (feat. ConnectException, SocketTimeoutException)주제 정의 김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션| 김영한 - 인프런 강의현재 평점 5.0점 수강생 7,020명인 강의를 만나보세요. I/O, 네트워크, 리플렉션, 애노테이션을 기초부터 실yurizzy.tistory.com 수집 대상 정의IDE의 빨간 줄을 없애기 위한 try~catch가 아니라, 실무에서 의도를 갖고 처리해야 하는 예외들을 모았다.지난 편에서 네트워크 타임아웃 예외의 발생 원리를 다뤘고, 이번 편은 그 확장판이다.수집 기준은 세 가지다. 첫째, 잡아서 복구(재시도, 대체 동작)가 가능한 예외.둘째, 사용자에게 다른 응답을 내려줘야 하는 ..

네트워크 타임아웃 예외가 발생하는 원리 (feat. ConnectException, SocketTimeoutException)

네트워크 타임아웃 예외가 발생하는 원리 (feat. ConnectException, SocketTimeoutException)

주제 정의 김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션| 김영한 - 인프런 강의현재 평점 5.0점 수강생 7,020명인 강의를 만나보세요. I/O, 네트워크, 리플렉션, 애노테이션을 기초부터 실무 레벨까지 깊이있게 학습합니다. 웹 애플리케이션 서버(WAS)를 자바로 직접 만들어봅니www.inflearn.com 외부 서버와 통신할 때 만나는 대표 네트워크 예외들이 TCP 통신의 어느 단계에서 왜 발생하는지그리고 백엔드 개발자가 연결 타임아웃과 소켓 타임아웃을 반드시 지정해야 하는 이유를 정리한 글이다. 인프런에서 김영한님의 자바 강의를 듣다가 네트워크 예외 파트에서 멈칫했다.지금까지 예외 처리를 "IDE가 빨간 줄을 그으니까 try~catch로 감싸는 것" 정도로 생각했기 때문이다. ..

자바 Executor 프레임워크로 스레드 풀 다루기 (feat. ThreadPoolExecutor)

자바 Executor 프레임워크로 스레드 풀 다루기 (feat. ThreadPoolExecutor)

스레드를 직접 new Thread()로 생성하고 관리하다 보니생성 비용, 반환값 회수, 스레드 재사용 같은 문제가 계속 발생했다.김영한 쌤의 자바 고급1편 강의로 Executor 프레임워크를 공부하면서스레드 풀 기반으로 이 문제들을 정리했고그 과정에서 시도했던 방법들과 최종적으로 이해한 내용을 기록해본다. 문제 상황스레드를 직접 다룰 때 크게 세 가지가 걸림돌이었음 첫째, 스레드 생성 비용이 큼스레드 하나를 만들 때마다 메모리(스택)를 할당하고 OS 커널에 스레드를 등록하는 비용이 드는데요청이 들어올 때마다 스레드를 새로 만들면 이 비용이 반복됨 둘째, 스레드 관리가 어려움지금 몇 개의 스레드가 돌고 있는지언제 종료해야 하는지를 직접 추적해야 함스레드가 무한정 늘어나면 시스템 자원이 고갈..

📚 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 : 신입이 알아야 할 DB 성능·풀스캔·인덱스 9가지

📚 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 : 신입이 알아야 할 DB 성능·풀스캔·인덱스 9가지

인트로 최근 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식을 읽으면서DB 성능과 인덱스에 대한 내용을 다시 정리하게 됐다.처음에는 DB 성능 문제가 생기면 “인덱스를 추가하면 되지 않을까?”라고 단순하게 생각했다.하지만 책을 읽고 실무 상황에 대입해보니, 인덱스는 정답이라기보다조회 패턴에 맞춰 설계해야 하는 도구에 가까웠다.특히 풀스캔, LIKE 검색, COUNT, 정규화와 비정규화,오래된 데이터 분리, 캐시, 장비 확장은 각각 따로 떨어진 주제가 아니었다.결국 하나의 질문으로 이어졌다.지금 이 API는 DB에서 읽을 필요가 있는 데이터만 읽고 있는가? 이번 글은 풀스캔을 줄이기 위해 내가 먼저 확인해야 할 DB 성능 항목 9가지를 정리한 기록이다.특정 회사 시스템을 그대로 설명한 글은 아니고, ..

👩🏻‍💻 Springframwork Mig 기록 : 화면에는 없는데 서버에는 필요한 값들 (feat. 세션 기반 파라미터)

👩🏻‍💻 Springframwork Mig 기록 : 화면에는 없는데 서버에는 필요한 값들 (feat. 세션 기반 파라미터)

인트로레거시 시스템을 Spring Boot 3 기반으로 옮기면서Controller 응답 방식과 세션 접근 방식을 함께 정리했다.처음에는 요청 파라미터만 잘 넘기면 기능이 그대로 동작할 거라고 생각했다.그런데 일부 기능에서 NullPointerException이 발생했다.이상했던 점은 화면에서 넘기는 값은 빠진 게 없어 보였다는 점이다.화면에는 없지만 서버 로직에는 꼭 필요한 값이 있었다. 바로 세션에서 꺼내 쓰던 사용자 식별값이었다.이번 글은 레거시 코드에서 암묵적으로 사용하던 세션 기반 값을 어떻게 추적했고마이그레이션 후에는 어떻게 NPE를 방어했는지 정리한 기록이다. 개발환경AS-ISTO-BEJava 1.7Java 17Spring Framework 4 계열Spring Boot 3 계열JS..

Inflearn ✅ 내가 하는 공부 로드맵 (feat. 2년 차 주니어가 만든 두 가지 학습 로드맵 이야기)

Inflearn ✅ 내가 하는 공부 로드맵 (feat. 2년 차 주니어가 만든 두 가지 학습 로드맵 이야기)

왜 로드맵을 두 개나 만들었나작년 말부터 다시 공부를 시작하면서 고민이 하나 생겼다.강의만 들을까, 책을 읽을까. 둘 다 장단점이 있었다.강의는 개념을 빠르게 이해할 수 있고 코드를 직접 보며 따라 칠 수 있다는 장점이 있다.특히 김영한 선생님 강의는 실습 위주라 손에 익히기 좋다.하지만 깊이 있는 내용은 책만한 게 없더라.특히 Real MySQL이나 이펙티브 자바 같은 책은 실무에서 막힐 때마다 찾아보는 레퍼런스가 되었다.그래서 두 개를 만들었다.강의 중심 로드맵: 빠르게 실무 감각을 익히고 싶을 때책+강의 로드맵: 제대로 깊게 공부하고 싶을 때 강의 로드맵 (21개 코스)강의 로드맵 보러가기이건 순수하게 강의만으로 구성했다.인프런에서 김영한 선생님 강의를 중심으로 Java 기초부터 Spring ..

반응형