분류 전체보기(112)
-
예외 처리
자바를 공부하거나 프로그래밍을 하다 보면 예외(Exception)와 관련된 오류를 마주치는 경우가 많습니다. 이번 글에서는 자바의 예외 처리에 대해 정리해보려고 합니다.● Object : 예외도 객체입니다.자바에서 모든 클래스의 최상위 부모는 Object이며 예외 클래스도 예외가 아닙니다. 따라서 예외도 객체입니다.● Throwable : 모든 예외의 최상위 클래스입니다.Throwable은 자바에서 발생할 수 있는 모든 예외와 오류의 부모 클래스입니다. 하위에는 Exception과 Error가 있습니다.● Error : 시스템 수준의 치명적인 예외입니다.Error는 메모리 부족, 스택 오버플로우 등 시스템적인 문제로 인해 발생하는 예외로, 애플리케이션에서 복구할 수 없습니다.따라서 애플리케이션 개발자는 ..
2025.07.19 -
트랜잭션
트랜잭션 - 개념 이해 데이터를 저장할 때 단순히 파일에 저장해도 되지만, 데이터베이스를 사용하는 이유는 무엇일까요?여러 가지 이유가 있지만, 가장 큰 이유는 데이터베이스가 트랜잭션(Transaction)이라는 개념을 지원하기 때문입니다.쉽게 말하면, 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 기능입니다. 트랜잭션의 ACID트랜잭션은 일반적으로 ACID라고 불리는 네 가지 특성을 보장해야 합니다.원자성(Atomicity)트랜잭션 내에서 실행된 작업들은 마치 하나의 작업처럼 모두 성공하거나 모두 실패해야 합니다.일관성(Consistency)모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 합니다.예를 들어, 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야 합니다.격리성(Isola..
2025.07.14 -
커넥션 풀
데이터베이스 커넥션을 획득할 때는 다음과 같은 복잡한 과정을 거친다.1.애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다.2.DB드라이버는 DB와 TCP/IP 커넥션을 연결한다. 이 과정에서 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생한다.3.DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달합니다.4.DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성합니다.5.DB는 커넥션 생성이 완료되었다는 응답을 보냅니다.6.DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환합니다. ※이렇게 커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 많이 소모가 됩니다.DB는 물론이고 애플리케이션 서버에서도 TCP..
2025.07.14 -
프로그래머스 LV2
2018 KAKAO BLIND RECRUITMENT - [3차] 압축import java.util.*;class Solution { public List solution(String msg) { List answer = new ArrayList(); String w = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; Map map = new HashMap(); for(int i = 0; i
2025.07.08 -
HTTP 헤더 캐시와 조건부 요청
캐시 기본 동작캐시가 없을 때1.데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 합니다.2.인터넷 네트워크는 매우 느리고 비쌉니다.3.브라우저 로딩 속도가 느리다.4.느린 사용자 경험 캐시 적용캐시를 적용하면 캐시 해더를 통해 max-age를 설정할 수 있습니다.max-age = 60인 경우 60초동안 유효하다는 의미라고 할 수 있습니다.응답한 결과를 캐시에 저장할 수 있습니다.(60초 유효) 2번째 요청을 할 때는 네트워크를 사용하는 것이 아닌 우선 캐시를 뒤져 가져올 수 있습니다. 단, 60초 유효가 지나지 않아야 가져올 수 있습니다. 캐시 적용● 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다.● 비싼 네트워크 사용량을 줄일 수 있다.● 브라우저 로딩 속도..
2025.07.06 -
HTTP 상태코드
상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1XX(Informational)요청이 수신되어 처리중 -> 실제로 거의 사용 X2XX(Successful)요청 정상 처리 -> 200 OK 3XX(Redirection)요청을 완료하려면 추가 행동이 필요4XX(Client Error)클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음5XX(Server Error)서버 오류, 서버가 정상 요청을 처리하지 못함 질문) 만약 모르는 상태 코드가 나타난다면?● 클라이언트가 인식할 수 없는 상태코드를 서버가 반환한다면?● 클라이언트는 상위 상태코드로 해석해서 처리● 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨예시) 299, 289 이러한 상태 코드라도 2..
2025.07.03