- DI
- 문자열
- join
- spring mvc
- 1차원 배열
- 스프링
- jpa
- string
- SSL
- 자바
- session
- AWS
- 데이터베이스
- select
- springboot
- sql
- PYTHON
- Django
- @transactional
- ORM
- 프로그래머스
- spring security 6
- nginx
- 스프링부트
- Docker
- spring
- spring boot
- Git
- mysql
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
목록분류 전체보기 (175)
개발하는 자몽
문제 https://school.programmers.co.kr/learn/courses/30/lessons/131536 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해 주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해 주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해 주세요. 풀이 동일한 회원이 동일한 상품을 재구매한 경우 재구매한 회원 ID, 재구매한 상품 ID 출력 회원 ID 기준으로 오름차순, 같은 경우 상품 ID 기준으로 내림차순 정렬 SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAV..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/132201 PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해 주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해 주세요. 풀이 환자이름, 환자번호, 성별코드, 나이, 전화번호 조회 12세 이하인, 여자환자 전화번호가 없는 경우, 'NONE'으로 출력 나이를 기준으로 내림차순, 나이가 같은 경우 환자이름을 기준으로 오름차순 정렬 SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/144853 BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해 주세요. 결과는 출판일을 기준으로 오름차순 정렬해 주세요. PUBLISHED_DATE의 데이트 포맷이 예시와 동일해야 정답처리 됩니다. 풀이 2021년에 출판 '인문' 카테고리 `BOOK_ID`, `PUBLISHED_DATE` 출력 출판일 기준으로 오름차순 정렬 `PUBLISHED_DATE`의 데이트 포맷 확인 SELECT BOOK_ID, DATE_FORMAT(published_date, '%Y-%m-%d..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/151136 CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해 주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해 주세요. 풀이 평균 일일 대여 요금 출력 자동차 종류가 'SUV'인 자동차만 출력 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림 출력할 컬럼명은 `AVERAGE_FEE`로 지정 SELECT ROUND(AVG(daily_fee) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE..
Swagger와 drf-yasg`Swagger`는 API 문서를 쉽고 간단하게 만들도록 도와주는 오픈 소스 도구이다. `drf-yasg`는 Django Rest Framework API로 Swagger/OpenAPI 2.0 Specification을 생성해 주는 라이브러리이다. 공식 문서는 이 글을 참고하자. drf-yasg 사용 방법Notice CBV에서 적용 작업하는 가상 환경에서 아래 명령어를 입력하여 `drf-yasg`를 설치한다. $ pip install -U drf-yasg 설치가 완료되었다면 `settings.py`에 아래 코드를 작성하자.INSTALLED_APPS = [ ... 'drf_yasg', ...] swagger UI의 css/js 파일이 필요하면 아래 코드로 ..
static file 관리 Django 프로젝트를 배포할 때 `DEBUG` 설정은 `False`로 설정하게 된다. 이미지가 저장된 경로로 API 요청하는 것에 대해서 `True`일 때는 `MEDIA_ROOT`와 `MEDIA_URL` 설정만 하면 이미지가 저장된 경로로 API 요청을 했을 때 200 응답을 받을 수 있다. 하지만 `False`일 때 요청을 하면 404 에러가 발생한다. static 파일 관리는 `INSTALLED_APPS`의 `django.contrib.staticfiles` 모듈이 담당하고 있는데, settings.py의 `DEBUG`를 `False`로 바꾸면 동작하지 않는다. 따라서 static 파일의 처리는 Apache나 Nginx와 같은 웹 서버가 담당하게 된다. 관련 내용은 여기를..
지난 글에서 외부에 노출되면 안 되는 정보는 `django-environ`을 통해 분리할 수 있다고 언급했다. django-environ은 환경 변수로 Django 애플리케이션을 구성할 수 있도록 해주는 파이썬 패키지다. 파이썬 패키지이므로 `pip`를 통해서 설치할 수 있다. django-environ 적용 가상 환경이나 작업 환경에 아래 명령어를 입력하여 `django-environ`을 설치해 보자. 참고로 그냥 `environ`도 있는데 이 친구가 아니다! 반드시 `django-environ`으로 설치! $ pip install django-environ `manage.py`와 동일한 위치에 `.env` 파일을 생성하자. 그리고 생성한 파일에 `key=value` 형식으로 외부에 노출하면 안 되는 ..
서버에서 개발을 하다가, 여러 명이 서버에 접근할 때 git이나 여러 설정이 꼬여서 개발 환경을 분리하기로 결정했다. SpringBoot는 `application.yml`이나 `application.properties`를 이용하여 개발 환경을 분리한다면, Django는 `settings.py`를 이용하여 개발 환경을 분리해야 한다. 구조 분리 전 설정이 담긴 프로젝트 구조는 아래와 같다. 📦backend ┣ 📜settings.py ┣ 📜asgi.py ┣ 📜exceptions.py ┣ 📜urls.py ┣ 📜wsgi.py ┗ 📜__init__.py 프로젝트 설정이 `settings.py` 하나로만 구성되어 있다. 이렇게 되면 로컬 환경이나 배포 환경의 설정이 동일하게 되므로 DB 접속이나 기타 설정 등을 할..
→😎Nginx의 로드 밸런싱 기능을 사용하게 된 이유는 아래 글을 참고😎 서버 부하 테스트 with Locust 개발 중인 애플리케이션에 대해서 조언받는 분에게 부하 테스트(Load Test)를 해보았냐는 질문을 받았다. 항상 개발을 하는 것과 해당 기능을 테스트하는 것에만 집중했지, 서버 그 자체를 테스트 backend-jaamong.tistory.com 위와 같은 이유로 로드 밸런싱을 적용하게 되었다. Nginx를 사용한 이유는 적용 방식이 간단하고 L4, L7 스위치로 하는 방법과 달리 비용이 들지 않기 때문이다. 그리고 Nginx를 도입하기 전 같은 기능을 제공하는 AWS의 ELB(Elastic Load Balancing)와도 비교해 보았다. 자세한 내용은 잘 정리해 둔 아래 글을 참고! AWS ..
개발 중인 애플리케이션에 대해서 조언해 주시는 분에게 부하 테스트(Load Test)를 해보았냐는 질문을 받았다. 항상 개발을 하는 것과 해당 기능을 테스트하는 것에만 집중했지, 서버 그 자체를 테스트한다는 생각은 못해봤던 것 같다. 해당 질문을 받으면서 부하 테스트란 무엇인지 찾아보게 되었고, 일정이 촉박할 때 간단하게 구성하여 테스트할 수 있는 도구인 Locust(https://locust.io/)를 알게 되었다. 부하 테스트 도구 중 유명한 것들을 사용하지 않고, Locust를 채택한 이유는 서버가 파이썬 기반의 Django로 구축되어 있는 상황으로, 일정이 촉박한 상황에서 빠르게 테스트를 진행할 수 있을 것이라 판단했기 때문이다. Locust 설치와 실행아래 명령어를 입력하면 `locust`..