본문 바로가기

전체 글223

예외(Exception) 이해하기 #1 머릿속에 있는 개념을 정리하는 블로그 글입니다. (개인적인 주관이 포함되어있습니다.)개념 정보가 정확하지 않을 수 있으므로, 참고만 부탁드립니다. 예외(Exception)가 왜 필요할까?( 개인적인 경험 )'예외'라는 단어는 사전적으로 "일반적인 규칙이나 통례에서 벗어나는 것"을 의미합니다. 개발을 하다 보면 "예외를 처리해야 한다"는 말을 자주 듣게 됩니다. 누구나 처음에는 자신이 생각한 방향대로 코드를 작성하지만, 모든 것이 계획대로만 흘러가지는 않습니다. 처음에는 "100% 문제가 발생하지 않을 것"이라는 막연한 자신감으로 예외 처리를 깊이 고민하지 않았습니다.하지만, Java에서 기본적으로 제공하는 예외 처리 기능 덕분에 지금까지 큰 불편 없이 개발할 수 있었습니다. 예외가 발생하면 함수 호출 스.. 2025. 3. 13.
쓰레드(Thread)의 기본개념 * 블로그 글을 읽기 전 *- 개념에 대해 주관적인 해석과 판단이 들어가 있으므로 정확하지 않을 수 있습니다 -스레드 (Thread)란?스레드는 컴퓨터가 하나의 작업을 처리하는 가장 작은 단위를 나타냅니다. 반면, 프로세스는 하나의 프로그램이 실행되는 단위라고 볼 수 있습니다.이 두 개념은 서로 비교되는 경우가 많습니다. 크기(단위)는 다르지만, 결국 컴퓨터가 작업을 처리하는 방식과 관련이 있기 때문입니다.그렇다면 컴퓨터가 작업을 처리한다는 것은 무엇을 의미할까요?컴퓨터는 저장된 데이터를 활용하거나 새로운 데이터를 입력받아 연산을 수행한 뒤, 결과를 도출하는 역할을 합니다. 이러한 일련의 과정을 우리는 "컴퓨터가 작업을 처리한다"라고 표현합니다. 이때, 컴퓨터가 이 작업을 프로세스로 처리할지, 아니면 스.. 2025. 3. 12.
[Spring-Resource] 스프링 Resource의 이해 (+ InputStream) * 요약 정보 *[Resource]- Resource는 인터페이스이다.- Resource를 사용하여, 기본적인 파일 상태값 또는 파일 여부를 파악이 가능하다- Resource 혹은 직접 작성하여 InputStream을 이용하여 제어할 수 있다[InputStream]- InputStream도 추상화된 추상클래스- FilterInputStream에서는 감싸기 기능이 추가된 InputStream이며, Resource와 결합하여 사용할 수 있다.- FileInputStream을 이용하여 파일제어가 가능하다. (이외에도 InputStream 구현체를 이용하여, 바이트 제어 및 오디오, 역직렬화, 스레드간의 통신이 가능)** 결론) 바이트 및 내용을 수정하는 것은 InputStream 클래스, 경로 및 상태값 확인.. 2025. 2. 24.
[File I/O] 파일 라이브러리 이해하기 (File, Files, Path, Paths) 구조FileJava 17 기준PathsPathFiles파일 관련 라이브러리Path의 유틸리티 라이브러리파일 경로 인터페이스파일관련 라이브러리파일 생성,삭제,수정 가능get() 메서드를 이용하여 경로 생성상대경로, 절대경로, 경로 결합 등 손쉽게 이용기존 File에서 제공되는 유틸 메서드 제공파일 심볼링 링크 및 고급기능 제한 기존 File객체와 호환 가능 ( toFile(), toPath() )추가적인 File관련 유틸 메서드 제공 (파일트리순회, 심볼릭 링크, 고급 기능 가능)예외처리 미흡  예외처리 강화 (IoException)   watch Service(디렉터리 변경 감시를 이용하여 이벤트 처리 가능) * 해당 Paths, Path, Files를 NIO(New I/O) API라고 불리움   Fil.. 2025. 2. 13.
# RestTemplate 이해하기 ( + RestTemplate을 사용한 이유...) RestTemplate을 왜 사용해야하는가?HTTP 통신을 위한 Client 사용 이유?- 웹브라우저를 이용한다면, 검색 공간에서 해당 URL 혹은 검색을 통해 정보를 얻을 수 있다.- Application 서버의 경우, 적절한 Client를 이용하여 URL을 통하여 검색 결과를 얻을 수 있다.(Application 서버 뿐만아니라, command line에서도 확인 가능)   웹 브라우저 없이 호출하기1. CURLcommand line상에서 URL을 이용하여 HTTP 통신을 할 수 있게 도와주는 tool(API  서버의 경우, 프론트(화면)없이 응답값을 제공하는 경우가 있으므로 Curl로 확인이 가능하다)CURL 알아야할 옵션-X : Http Method 방식 ( GET / POST/ PUT / DEL.. 2025. 2. 11.
#소셜로그인 (OAuth2.0) 사용 후기 (+디자인패턴 : 전략&팩토리) 소셜로그인 FLOW  소셜로그인 방식외부 서버 : 구글, 네이버, 카카오 등.. (소셜로그인을 제공하는 회사)내 서버 : 개발중인 애플리케이션 서버외부 인증서버 요청 (내 서버)외부 인증서버 로그인 (외부 서버)로그인 후 발급되는 code 값 획득 ( 내 서버 )code값을 통한 외부 서버 accessToken 발급 ( 내 서버 )accessToken을 이용해서 외부서버 계정정보 획득 ( 내 서버 )자체 서버 저장 ( 내 서버 ) parameter 값1. code 값 : 사용자가 로그인 할 경우, 해당 사용자에 대한 정보 인증을 위해 code 값 제공 (외부 서버 -> 로그인 요청 서버)해당 code값을 이용해서 외부서버와의 통신을 위해서 access Token 발급 (내 서버 -> 외부 서버)code값.. 2025. 2. 11.