분류 전체보기(84)
-
[Java] Java 문자열 String / StringBuilder
문자열 Hello에 World를 추가하려면 어떻게 해야할까?String가장 쉬운 방법은 연산자를 사용해 합치는 방법이 있을 것이다.String str = "Hello";str += "World"; // "Hello World" 문자열을 추가해서 Hello World를 완성했다.연산(+, replace, substring)을 사용해 문자열을 바꾼것 처럼 보이지만 사실 새로운 문자열 객체를 생성한 것이다.String은 한 번 만들어진 문자열은 바뀌지 않는 불변(immutable) 객체이다.그렇기 때문에 문자열을 자주 수정하는 경우 성능이 떨어진다. 주요 메서드 char charAt(int index) : 특정 위치 문자 반환int length() : 문자열 길이boolean equals(Object obj)..
2025.09.29 -
[Server] 로컬 DNS 서버에서 wildcard 사용하기 - DNSmasq
맥에서 /etc/hosts 파일은 도메인과 IP 주소를 직접 매핑하는 데 사용되는 간단한 로컬 DNS 서비스이다. example.com 도메인의 IP 주소를 192.0.2.1로 매핑하는 항목을 /etc/hosts 파일에 추가하면 example.com 도메인에 대한 요청이 있을 때, 로컬 시스템은 /etc/hosts 파일에서 매핑 정보를 찾아 해당 IP 주소로 요청을 전달한다. 나는 로컬 개발환경에서 서브도메인을 사용해야 했는데 hosts 파일에서도 aaaa.example.com 처럼 서브도메인 설정이 가능하지만 wildcard(*.example.com) 형식은 지원하지 않는다. 다양한 서브도메인 테스트가 필요했는데 그때마다 하드코딩 할 수 없었기 때문에 dnsmasq를 사용해 로컬 개발환경에서 wildc..
2023.04.28 -
[Error] ModuleNotFoundError: No module named 'apps.views.main'; 'apps.views' is not a package
문제 발생 원래 Django에서는 app 디렉토리 내의 views.py 파일에 뷰 함수나 클래스를 작성한다. 하지만 나 같은 경우 views.py 파일이 복잡해져 파일로 분리해 작성하고 싶었다. 이 오류는 분리한 파일을 폴더로 생성하고 폴더 내부에 파일들을 생성해 다른 파일에서 해당 뷰를 import 할 때 난 오류이다. 원인 기존의 views.py 파일과 새로 생성한 디렉토리 이름 간의 이름 충돌이 발생한 것이다. 예를 들어, 기존의 views.py 파일과 myapp/views 디렉토리에 새로 생성한 main.py 파일이 존재하는 경우, from . import views와 같은 import 구문이 views 파일인지 views 폴더인지 어떤 것을 참조해야 하는지 알 수 없기 때문에, ModuleNot..
2023.04.27 -
[Python] Generator와 핵심 yield 키워드
Generator Generator는 Iterator(값을 차례대로 꺼낼 수 있는 객체)를 만들어주는 함수이다. Generator는 Iterator를 생성해주기 때문에, 한번에 모든 값을 메모리에 저장하지 않아도 된다. 대신 값을 생성하는 시점에서 값을 생성하고 바로 반환하며, 다음 값이 필요한 시점에서 다시 실행된다. 이런 동작원리로 메모리를 효율적으로 사용할 수 있다. 특징 generator 함수는 일반 함수와 유사하지만, return 대신 yield 구문을 사용하여 값을 반환하고, 함수를 호출할 때마다 generator 객체를 반환한다. generator 객체는 iterator protocol을 구현하여, next() 함수를 호출하면 generator 함수에서 yield 구문에서 반환한 값을 하나씩..
2023.04.26 -
[Oracle] 취소되지 않은 진료 예약 조회하기
문제 PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요. Pseudo Code 3개의 테이블 조인 APNT_YMD 컬럼이 20220413 이고 MCDP_CD이 CS이고 APNT_CNCL_YN가 N인 데이터가 나오도록 필터링 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목 추출 APNT_CNCL_YN 기준 ASC 내코드 SELECT A.APNT_NO, P.PT_NAME, P.PT_NO, D.MCDP_CD..
2023.04.25 -
[Oracle] 자동차 대여 기록에서 장기/단기 대여 구분하기
문제 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요. Pseudo Code CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월인 데이터만 추출하는 SQL문 작성 START_DATE, END_DATE컬럼은 예시의 데이트 포맷과 동일해야 정답처리 되므로 그에 맞게 포매팅 해준다. 대여 기간이 30일 이상이면 장기, 그외는 단기 대여로 표시할 수 있도록..
2023.04.24 -
[Oracle] 주문량이 많은 아이스크림들 조회하기
문제 7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요. Pseudo Code FIRST_HALF와 JULY 테이블에서 FLAVOR 컬럼을 기준으로 총 주문량을 알기 위해 중복이 되지 않도록 UNION ALL하여 새로운 테이블을 만든다. 1의 결과 SQL문으로 부터 FLAVOR별 주문량을 알아내기 위해 FLAVOR 컬럼을 그룹핑해준뒤 집계함수로 TOTAL_ORDER 계산한다. 총주문량이 많은 순서부터 뽑아내기 위해 TOTAL_ORDER 컬럼 기준 DESC 2의 결과 테이블로부터 ROWNUM이 1,2,3인 FLAVOR 값을 반환한다. 내코드 SELECT FLAVOR FROM ( SELECT FLAVOR, SUM(TOTAL..
2023.04.23 -
[Oracle] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
문제 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. Pseudo Code 자동차의 ID, ..
2023.04.22 -
[Error] TypeError: 'BasePermissionMetaclass' object is not iterable in django rest framework
permission_classes를 작성해주다 난 오류이다. permission_classes는 리스트와 튜플형태로 작성 가능한데 튜플로 작성할 때는 문법적 차이로 살짝 형태가 다르다. 파이썬에서 튜플을 만들 때 하나의 요소만 있을 경우, 그냥 괄호만으로는 튜플임을 인식하지 못하기 때문에 튜플 안에 하나의 요소만 있더라도 반드시 쉼표(,)를 함께 작성해주어야 한다. permission_classes = (IsStaffUser,) OR permission_classes = [IsStaffUser]
2023.04.22 -
[DRF] Custom Permission- URL based permission
URL-based permission URL 패턴에 따라 사용자에게 다른 권한을 부여하는 방식을 의미한다. URL dispatcher Django는 일반적으로 URLconf 파일을 가지고 있다. URLconf 파일은 각 app단의 urls.py 모듈에서 정의된다. 이 파일에는 urlpatterns 변수를 정의하고, 이 변수는 URL 패턴을 리스트로 나타내며, 각 패턴은 path() 또는 re_path() 함수를 사용하여 정의한다. Django는 URLconf 파일에 URL 패턴을 정의하고 각 패턴에 대해 어떤 view 함수나 클래스를 호출할지를 지정해 매칭시킨다. URL dispatcher는 HTTP요청이 들어올 때마다 적절한 url에 연결해주는 기능을 의미한다. 이러한 기능을 기반으로 특정 URL 패턴..
2023.04.21