전체 글 404

쿠버네티스 Pods

Pods는 아주 간단하고 기본적이다. Pods는 하나 혹은 둘 이상의 컨테이너로 이루어진 그룹이다. 그리고 공유 저장 네트워크와 컨테이너 실행법에 대한 설명를 갖고 있다. Pod는 쿠버네티스에서 가장 기본으로 배포되는 유닛이다. 여러 개의 마이크로 서비스가 있으면 개발자들은 각 마이크로서비스들을 도커 이미지 안에 포장시킨다. 그러고 나면 스스로 배포를 전개할 수 있다. 클라우드 시스템 안에서 노드를 작동시켜 접속한 다음 도커 명령어를 입력해 실행하는 것을 예시로 들 수 있다. 이런 식으로 도커 컨테이너를 해당 이미지와 함께 실행할 수 있다. 이런 시스템을 조직하기 위한 쿠버네티스 활용법 우선, 쿠버네티스는 컨테이너들의 시작과 종료를 총제적으로 관리한다고 할 수 있다. 아키텍처의 조직을 위해 쿠버네티스는 ..

클라우드 2024.03.11

[프로그래머스] Lv1. 경기도에 위치한 식품창고 목록 출력하기 Oracle

경기도에 위치한 식품창고 목록 출력하기 문제 설명 다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE 테이블입니다. FOOD_WAREHOUSE 테이블은 다음과 같으며 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다. Column nameTypeNullable WAREHOUSE_ID VARCHAR(10) FALSE WAREHOUSE_NAME VARCHAR(20) FALSE ADDRESS VARCHAR(100) TRUE TLNO VARCHAR(20) TRUE FREEZER_YN VARCHAR(1) TRUE 문제 FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID..

SQL 문제 풀이 2024.03.10

[프로그래머스] Lv3. 베스트 앨범 해시

베스트앨범 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생..

[Spring DB 1편 듣고 복습, 토이 프로젝트 수정] 6. 스프링과 문제 해결 - 예외 처리, 반복

체크 예외와 인터페이스 서비스 계층은 가급적 다른 구현 기술에 의존하지 않고 순수한 비즈니스 코드만 존재하는 것이 좋으므로, 예외에 대한 의존도 해결해야 한다. SQLException 같은 체크 예외를 런타임 예외로 전환해서 서비스 계층으로 던지면, 서비스 계층이 이 예외를 무시할 수 있어서 특정 구현 기술에 의존하는 부분을 제거하고 서비스 계층을 순수하게 유지할 수 있다. MemberRepository라는 인터페이스를 도입해서 구현 기술을 쉽게 변경할 수 있게 해야한다. MemberRepository 인터페이스를 도입하여 JdbcMemberRepository나 JpaMemberRepository라는 구현 클래스를 만들어서 사용하고, MemberService에서는 MemberRepository 인터페이스..

Spring 2024.03.09

[Spring DB 1편 듣고 복습, 토이 프로젝트 수정] 5. 자바 예외 이해

Object: 예외도 객체이므로, 예외의 최상위 부모도 Object Throwable: 최상위 예외 Error: 메모리 부족이나 시스템 오류같이 애플리케이션에서 복구 불가능한 시스템 예외. Throwable을 catch로 잡으려 하면 Error도 잡혀서 Throwable은 잡으려 하면 안됨. Exception부터 잡아야 하는 오류로 생각해야함. Exceptions 체크 예외: 애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외. RuntimeException을 제외하고 Exceptions의 하위 예외는 모두 체크 예외임. 체크 예외는 잡아서 처리하거나, 밖으로 던지도록 선언해야함. 개발자가 실수로 예외를 누락하지 않도록 컴파일러를 통해 문제를 잡아주는 장점이 있지만, 모든 체크 예외를 처리해주어야..

Spring 2024.03.02

[Spring DB 1편 듣고 복습, 토이 프로젝트 수정] 4. 스프링과 문제 해결 - 트랜잭션 - 2

MemberRepository의 코드 수정 (V3) 파라미터로 커넥션을 넘기는 부분을 모두 지우고 private void close(Connection con, Statement stmt, ResultSet rs) { JdbcUtils.closeResultSet(rs); JdbcUtils.closeStatement(stmt); //트랜잭션 동기화를 사용하려면 DataSourceUtils를 사용해야함. DataSourceUtils.releaseConnection(con, dataSource); } private Connection getConnection() throws SQLException { Connection con = DataSourceUtils.getConnection(dataSource); l..

Spring 2024.02.29

[Spring DB 1편 듣고 복습, 토이 프로젝트 수정] 4. 스프링과 문제 해결 - 트랜잭션 - 1

문제점 애플리케이션 구조는 UI를 처리하는 @Controller의 '프레젠테이션 계층', 비즈니스 로직을 처리하는 @Service의 '서비스 계층', DB 접근을 처리하는 @Repository의 '데이터 접근 계층'의 3가지 계층으로 나뉜다. 프레젠테이션 계층 UI와 관련된 처리 담당 웹 요청과 응답 사용자 요청 검증 서비스 계층 비즈니스 로직을 담당 가급적 다른 특정 기술에 의존하지 않고, 순수 자바 코드로 작성 데이터 접근 계층 실제 데이터베이스에 접근하는 코드 JDBC, JPA, ... 이 3가지 계층 중에서 서비스 계층이 가장 중요하다. 시간이 흘려서 웹, 데이터 저장 기술이 변해도, 비즈니스 로직은 최대한 변경없이 유지되어야 한다. 이렇게 하려면 서비스 계층은 다른 기술에 종속적이지 않고 최대한..

Spring 2024.02.29

[프로그래머스] Lv2. 의상 파이썬 해시

의상 문제 설명 코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다. 종류이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다. 착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다. 코니는 하루에 최소 한 개의 의상은 입습니다. 코니가 가..

[Spring DB 1편 듣고 복습, 토이 프로젝트 수정] 3. 트랜잭션 이해

트랜잭션 개념 데이터를 데이터베이스에 저장하는 이유는 트랜잭션 때문이다. 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해준다. 계좌 이체에서 A가 B에게 2000원을 보낸다고 했을 때, 두가지 일이 수행되어야 한다. 하나는 A의 잔고가 2000원 줄어드는 것. 또 하나는 B의 잔고가 2000원이 증가하는 것이다. 하지만, 만약 A의 잔고가 2000원 줄어들고, 오류가 나서 B의 잔고가 증가하지 않는다면 심각한 문제가 발생한다. 그래서 이때는 모든 일이 성공적으로 수행되면 커밋, 하나라도 실패하면 롤백되도록 해야한다. 트랜잭션 ACID Atomicity: 원자성. 트랜잭션 내에서 실행한 작업들은 하나의 작업인 것처럼 모두 성공하거나 모두 실패해야 한다. Consistency: 일관성. 모든 트랜잭션은 ..

Spring 2024.02.27

[프로그래머스] Lv2. 진료과별 총 예약 횟수 출력하기

진료과별 총 예약 횟수 출력하기 문제 설명 다음은 종합병원의 진료 예약정보를 담은 APPOINTMENT 테이블 입니다. APPOINTMENT 테이블은 다음과 같으며 APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN, APNT_CNCL_YMD는 각각 진료예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냅니다. Column nameTypeNullable APNT_YMD TIMESTAMP FALSE APNT_NO NUMBER(5) FALSE PT_NO VARCHAR(10) FALSE MCDP_CD VARCHAR(6) FALSE MDDR_ID VARCHAR(10) FALSE APNT_CNCL_YN VARCHAR(1) ..

SQL 문제 풀이 2024.02.27
728x90