전체 글 104

'코레일' BM 분석하기

본 글은 2025년 9월 기준으로 조사한 내용을 바탕으로 작성되었습니다. 이후 변경된 사항이 있을 수 있으니 참고 부탁드립니다. BM(비즈니스 모델) 분석을 처음 접하며, 첫 분석 기업으로 코레일(KORAIL)을 선정했다. 평소 버스와 지하철을 자주 이용하지만, 장거리 이동 시 편리한 철도 서비스에도 관심이 있었고, 코레일이 국민 생활과 밀접한 대표 공기업이라는 점에서 분석 대상으로 적합하다고 판단했다. 코레일은 전국 철도망을 운영하며 국민의 이동권을 보장하고, KTX, 일반열차, 광역전철, 관광열차 등 다양한 서비스를 제공하고 있다. 동시에 지속적인 적자 구조라는 한계도 가지고 있다. 따라서 이번 분석은 공기업도 BM 분석이 가능한지, 수익 극대화를 우선하지 않는 조직은 어떤 비즈니스 모델 구조를 가지..

BM분석 2026.04.27

[26.04.21 코테/회고(MySQL/Oracle)]-상품을 구매한 회원 비율 구하기

Lv5. 상품을 구매한 회원 비율 구하기 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/131534 내가 작성한 코드-- 2021년 가입 전체 회원 수WITH USERS_2021 AS ( SELECT COUNT(*) AS TOTAL_USERS FROM USER_INFO WHERE YEAR(JOINED) = 2021) SELECT YEAR(O.SALES_DATE) AS YEAR ,MONTH(O.SALES_DATE) AS MONTH ,COUNT(DISTINCT O.USER_ID) AS PURCHASED_USERS ,ROUND(COUNT(DISTINCT O.USER_ID) / TO..

코딩테스트 2026.04.21

[26.04.20 코테/회고(MySQL)]-Python 개발자 찾기

Lv1. Python 개발자 찾기 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/276013 내가 작성한 코드SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python'ORDER BY ID ASC; 새로 배운 코드SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE 'Python' IN (SKILL_1, SKILL_2, SKILL_3)ORDER BY ID ASC; 문제 회고1. IN을..

코딩테스트 2026.04.20

[26.04.17 코테/회고(MySQL)]-한 해에 잡은 물고기 수 구하기

Lv1. 한 해에 잡은 물고기 수 구하기 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/298516 내가 작성한 코드SELECT COUNT(*) AS FISH_COUNTFROM FISH_INFOWHERE DATE_FORMAT(TIME, '%Y') = '2021' 문제 회고1. 날짜 관련 포맷- %Y : 4자리 연도 (2026)- %y : 2자리 연도 (26)- %m : 2자리 숫자 월 (01~12)- %d : 2자리 숫자 일 (01~31)- %H : 24시간 형식 (00~23)- %i : 분 (00~59)

코딩테스트 2026.04.17

[26.04.16 코테/회고(MySQL/Oracle)]-자동차 대여 기록에서 장기/단기 대여 구분하기

Lv1. 자동차 대여 기록에서 장기/단기 대여 구분하기 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/151138 내가 작성한 코드SELECT HISTORY_ID, CAR_ID ,DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE ,DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE ,CASE WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE -- DATEDIFF(END_DATE, STAR..

카테고리 없음 2026.04.16

[26.04.15 코테/회고(MySQL/Oracle)]-자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

Lv2. 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/151137?language=mysql 내가 작성한 코드-- 풀이1 (LIKE 연산자)SELECT CAR_TYPE, COUNT(CAR_ID) AS CARSFROM CAR_RENTAL_COMPANY_CARWHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트%'GROUP BY CAR_TYPEORDER BY CAR_TYPE ASC;-- 풀이2 (정규표현식)SELECT CAR_TYPE, COUNT(CAR_ID) AS CARSFROM CAR_..

코딩테스트 2026.04.15

[26.04.14 코테/회고(MySQL/Oracle)]-조건에 맞는 도서와 저자 리스트 출력하기

Lv2. 조건에 맞는 도서와 저자 리스트 출력하기 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/144854?language=mysql 내가 작성한 코드SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATEFROM BOOK BJOIN AUTHOR A ON B.AUTHOR_ID = A.AUTHOR_IDWHERE B.CATEGORY = '경제'ORDER BY B.PUBLISHED_DATE-- 풀이2SELECT B.BOOK_ID, A.AUTHOR_NAME, DATE_FORMAT(B.PUBLISHED_DATE, '%Y-%m-..

코딩테스트 2026.04.14

[26.04.13 코테/회고(MySQL)-성분으로 구분한 아이스크림 총 주문량

Lv2. 성분으로 구분한 아이스크림 총 주문량(MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/133026?language=mysql 내가 작성한 코드SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDERFROM ICECREAM_INFO IJOIN FIRST_HALF HUSING (FLAVOR)GROUP BY INGREDIENT_TYPEORDER BY TOTAL_ORDER ASC; 문제 회고1. USING절- 두 테이블의 조인 컬럼명이 완전히 동일하므로 조인 키인 FLAVOR 컬럼을 USING 절을 이용해 작성하였다 - 컬럼명이 서로 다르면 USING 절을 사용할 수 없다 - 별칭..

코딩테스트 2026.04.13

[26.04.10 코테/회고(MySQL)]-고양이와 개는 몇 마리 있을까

Lv2. 고양이와 개는 몇 마리 있을까 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/59040 내가 작성한 코드SELECT ANIMAL_TYPE, count(ANIMAL_ID) AS countFROM ANIMAL_INSGROUP BY ANIMAL_TYPEORDER BY ANIMAL_TYPE ASC; 문제 회고1. ORDER BY절- 문제 조건에서 고양이를 개보다 먼저 조회하라고 하였다- 고양이(Cat), 개(Dog)에서 C가 D보다 먼저이므로 오름차순으로 정렬하면 먼저 조회된다- 만약 고양이보다 개가 먼저 조회된다면 내림차순(DESC) 정렬해야 한다

코딩테스트 2026.04.10

[26.04.09 코테/회고(MySQL/Oracle)]-3월에 태어난 여성 회원 목록 출력하기

Lv2. 3월에 태어난 여성 회원 목록 출력하기 (MySQL)링크: https://school.programmers.co.kr/learn/courses/30/lessons/131120 내가 작성한 코드SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTHFROM MEMBER_PROFILEWHERE MONTH(DATE_OF_BIRTH) = 3 AND GENDER = 'W' AND TLNO IS NOT NULLORDER BY MEMBER_ID ASC; OracleSELECT MEMBER_ID, MEMBER_NAME, GENDER, TO_CHAR(DATE_OF_BIRTH, 'YYYY-MM-DD')..

코딩테스트 2026.04.09