[프로그래머스 SQL] Lv.1 - 12세 이하인 여자 환자 목록 출력하기
·
SQL/SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/132201 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이12세 이하이면서, 성별코드가 "W"인 행을 필터링한다.나이 내림차순, 환자이름 오름차순 정렬한다.환자 이름, 환자 번호, 성별 코드, 나이 전화번호를 조회한다. 이때 전화번호가 없는 경우를 처리하기 위해 IFNULL 키워드를 사용한다.SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNOFROM PATIENTWHERE AGE
[프로그래머스 SQL] Lv.1 - 인기있는 아이스크림
·
SQL/SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/133024 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이총 주문량 내림차순, 출하번호 오름차순 정렬한다.아이스크림의 맛을 조회한다.SELECT FLAVORFROM FIRST_HALFORDER BY TOTAL_ORDER DESC, SHIPMENT_ID
[프로그래머스 SQL] Lv.1 - 강원도에 위치한 생산공장 목록 출력하기
·
SQL/SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/131112 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이ADDRESS가 강원도에 위치한 행만 필터링한다. 이때 LIKE 키워드나 LEFT 키워드를 사용할 수 있다.공장 ID를 기준으로 오름차순 정렬한다.공장 ID, 공장 이름, 주소를 조회한다.SELECT FACTORY_ID, FACTORY_NAME, ADDRESSFROM FOOD_FACTORYWHERE # LEFT(ADDRESS, 3) = '강원도' ADDRESS LIKE '강원도%'ORDER BY ..
[프로그래머스 SQL] Lv.1 - 평균 일일 대여 요금 구하기
·
SQL/SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/151136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이자동차 종류가 "SUV"인 행만 필터링한다.평균을 구하기 위해 AVG 키워드를 사용하고, 반올림을 하기 위해 ROUND 키워드를 사용한다.SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEEFROM CAR_RENTAL_COMPANY_CARWHERE CAR_TYPE = 'SUV'
[프로그래머스 SQL] Lv.1 - 과일로 만든 아이스크림 고르기
·
SQL/SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/133025 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 풀이FIRST_HALF 테이블과 ICECREAM_INFO 테이블을 조인한다.총주문량이 3,000 이상과 주성분이 과일인 아이스크림을 필터링한다.총주문량을 내림차순 정렬한다.아이스크림의 맛을 선택한다.SELECT F.FLAVORFROM FIRST_HALF AS F JOIN ICECREAM_INFO AS I ON F.FLAVOR = I.FLAVORWHERE F.TOTAL_ORDER >= 300..
[프로그래머스 SQL] Lv.1 - 흉부외과 또는 일반외과 의사 목록 출력하기
·
SQL/SELECT
https://school.programmers.co.kr/learn/courses/30/lessons/132203 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 과정1. 테이블에서 진료과(MCDP_CD)가 "CS" 또는 "GS"인 컬럼만 필터링한다. (OR 또는 IN 사용)2.  고용일자 내림차순, 이름 오름차순 정렬한다.3. 고용일자를 그냥 출력하면 시분초까지 나오므로 DATE_FORMAT을 사용한다. SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') as HIRE_YMDFROM DOCTORWHERE..
응집도와 결합도에 대해서 설명해 주세요.
·
백엔드 면접
응집도(Cohension)는 모듈에 포함된 내부 요소들이 연관되어 있는 정도를 나타냅니다. 결합도(Coupling)는 의존성의 정도를 나타내며, 다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지를 포함합니다. 응집도와 결합도는 변경과 관련이 깊습니다. 일반적으로 좋은 설계란 높은 응집도와 낮은 결합도를 가진 모듈로 구성된 설계를 의미하는데요, 변경이 발생하는 경우 특정 모듈만 수정되면 응집도가 높다고 판단할 수 있습니다. 반면, 특정 모듈을 변경하는 경우에 다른 모듈도 변경해야 하는 상황에서는 결합도가 높다고 판단할 수 있습니다. 캡슐화의 정도가 응집도와 결합도에 영향을 미치게 됩니다. 캡슐화를 준수하면, 모듈 안의 응집도는 높아지고 모듈 사이의 결합도는 낮아집니다. 따라서 응집도와 결합도를 고려하기 전..
관계형 DB와 비 관계형 DB의 차이점은 무엇인가요?
·
백엔드 면접
관계형 데이터베이스는 고정된 로우와 컬럼으로 구성된 테이블에 데이터를 저장합니다. 그리고 SQL을 사용하여 여러 테이블에 존재하는 데이터와 관계에 따라서 조인하여 합칠 수도 있습니다. 관계형 데이터베이스는 데이터를 중복 없이 한 번만 저장하고, 데이터 무결성을 보장합니다. 또한 일반적으로 스케일 업을 사용하여 확장합니다.하지만 관계형 데이터베이스는 스키마를 유연하게 바꾸기 어렵다는 한계가 있습니다. 그리고 관계가 존재하기 때문에 비즈니스 요구사항이 복잡해짐에 따라 쿼리도 복잡해지게 됩니다. 반면 NoSQL이라고도 불리는 비 관계형 데이터베이스는 정해진 스키마가 존재하지 않아 자유롭게 데이터를 저장하고 조회할 수 있습니다. document, graph, key-value 등 다양한 유형이 존재합니다. 비 ..
HTTP/1.1과 HTTP/2.0에 대해서 설명해 주세요.
·
백엔드 면접
HTTP/1.0의 경우 매 요청과 응답마다 TCP 커넥션을 생성해서 사용했기 때문에 오버헤드가 발생했습니다. HTTP/1.1은 이러한 문제를 지속 커넥션이라는 지정한 타임아웃만큼 커넥션을 종료하지 않는 방식으로 해결합니다. 또한 특정 요청에 대한 응답이 수신되기 전에 다음 요청을 보낼 수 있는 파이프라이닝 기능으로 요청의 응답 지연을 감소합니다.HTTP/1.1은 1.0 버전에 비해 많이 개선되었지만, Head Of Line Blocking 문제가 존재했습니다. 만약 3개의 요청을 파이프라인을 통해 전송했을 때, 서버는 모든 요청을 순서에 맞춰서 응답해야 합니다. 이때 첫 번째 요청에 대한 응답이 너무 오래 걸리면 나머지 요청은 첫 번째 요청의 처리를 기다려야 합니다. 또한 1.1 버전은 매 요청마다 동일..
프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요?
·
백엔드 면접
같은 프로세스에 속한 스레드들 간에 컨텍스트 스위칭은 같은 프로세스에 속하기 때문에 메모리 영역을 공유합니다. 그래서 스위칭이 발생해도 메모리와 관련한 추가적인 작업이 발생하지 않습니다. 하지만 다른 프로세스에 속한 스레드들 간에 컨텍스트 스위칭의 경우 프로세스 간에 메모리 추소 체계가 다르기 때문에 메모리 주소 관련 처리를 추가적으로 수행해야 합니다. MMU가 새로운 프로세스의 주소 체계를 바라보도록 수정하고, TLB라는 페이지 테이블의 캐시 메모리를 비워줘야 합니다. 만약 TLB 캐시를 비워주지 않는 경우 이전에 작업했던 프로세스의 주소에 접근할 가능성이 있기 때문에 반드시 수행해야 합니다. 또한 프로세스 컨텍스트 스위칭이 일어날 경우, 다른 프로세스의 실행으로 인해 CPU가 새로운 명령어와 데이터를..