오늘은 프로그래머스 SQL 몇 문제와 JavaScript에 대해 공부했습니다.
다음은 제가 오늘 풀었던 알고리즘 문제들 입니다.
1. 어린 동물 찾기(https://school.programmers.co.kr/learn/courses/30/lessons/59037)
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> 'Aged'
ORDER BY ANIMAL_ID
2. 여러 기준으로 정렬하기(https://school.programmers.co.kr/learn/courses/30/lessons/59404)
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID, NAME, DATETIME DESC
3. 이름에 el이 들어가는 동물 찾기(https://school.programmers.co.kr/learn/courses/30/lessons/59047)
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog' AND NAME LIKE '%el%'
ORDER BY NAME
4. 나이 정보가 없는 회원 수 구하기(https://school.programmers.co.kr/learn/courses/30/lessons/131528)
SELECT COUNT(*) as USERS
FROM USER_INFO
WHERE AGE is NULL
5. 가장 비싼 상품 구하기(https://school.programmers.co.kr/learn/courses/30/lessons/131697)
SELECT MAX(PRICE)
FROM PRODUCT
6. NULL 처리하기(https://school.programmers.co.kr/learn/courses/30/lessons/59410)
SELECT ANIMAL_TYPE, CASE WHEN NAME is NULL THEN 'No name'
ELSE NAME
END as 'NAME',
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
7. 경기도에 위치한 식품창고 목록 출력하기(https://school.programmers.co.kr/learn/courses/30/lessons/131114)
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS,
CASE WHEN FREEZER_YN is NULL THEN 'N'
ELSE FREEZER_YN
END as FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE WAREHOUSE_NAME LIKE "%경기%"
ORDER BY WAREHOUSE_ID
8. 강원도에 위치한 생산공장 목록 출력하기(https://school.programmers.co.kr/learn/courses/30/lessons/131112)
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE "%강원도%"
ORDER BY FACTORY_ID
다음은 JavaScript입니다.
JavaScript은 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어입니다. 또한 JavaScript 은 HTML 안에 작성할 수 있는데, 웹페이지를 불러올 때 스크립트가 자동으로 실행됩니다.
이름이 비슷하여 많이 헷갈리고는 하지만, 다른 프로그래밍 언어인 Java와는 매우 다릅니다.
모던 JavaScript는 메모리나 CPU같은 저수준 영역의 조작을 허용하지 않습니다. 애초에 이러한 접근이 필요하지 않은 브라우저를 대상으로 만들어진 언어이기 때문입니다.
브라우저에서 할 수 있는 일은 다음과 같습니다.
- 페이지에 새로운 HTML을 추가하거나 기존 HTML, 혹은 스타일 수정하기
- 마우스 클릭이나 포인터의 움직임, 키보드 키 눌림 등과 같은 사용자 행동에 반응하기
- 네트워크를 통해 원격 서버에 요청을 보내거나, 파일 다운로드, 업로드하기
- 쿠키를 가져오거나 설정하기. 사용자에게 질문을 건네거나 메시지 보여주기
- 클라이언트 측에 데이터 저장하기
브라우저는 보안을 위해 JavaScript 기능에 제약을 걸어놓았습니다. 악성 웹페이지가 개인 정보에 접근하거나, 사용자의 데이터를 손상하는 걸 막기위함이죠.
JavaScript는 브라우저 인터페이스를 만들 때 가장 널리 사용되고 있습니다. 왜냐하면 아래 강점 덕분이죠.
- HTML/CSS와 완전히 통합할 수 있음
- 간단한 일은 간단하게 처리할 수 있게 해줌
- 모든 주요 브라우저에서 지원하고, 기본 언어로 사용됨
- Express.js
- Express.js의 특징은 무엇인가요?
- 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크.
- 고성능 웹 애플리케이션 개발이 가능하다.
- 장점을 기술해주세요.
- 쉽게 서버를 구축할 수 있고, 가볍고 유연하다.
- middleware를 활용해 응답과정 중간에 특정 동작을 수행할 수 있다.
- routing이 편리하며 직관적이다.
- 거대한 커뮤니티를 가지고 있어 문제해결에 도움이 된다.
- 단점을 기술해주세요.
- 구조의 일관성이 부족해 대규모 프로젝트에서 문제가 생길 수 있다. 즉, 프로젝트의 유지 및 확장에 어려움이 생길 수 있다.
- 비동기적인 Node.js의 특징으로 인해 무한 콜백에 빠질 수 있다.
- Express.js의 특징은 무엇인가요?
- Nest.js
- Nest.js의 특징은 무엇인가요?
- Node.js 환경의 새로운 프레임워크. MVC 디자인 패턴을 기본 패턴으로 하여 역할과 구현이 명확하게 구분된다.
- 별도의 cli를 제공하여 새로운 기능을 추가할 때 직접 코드를 작성하지 않고도 해당 기능에 대한 모듈 구조가 생성된다.
- 장점을 기술해주세요.
- 역할에 따른 기능이 명확해진다.
- 기능별로 세분화되어 있어 디버깅 및 유지 보수, 신규 기능 개발 시 훨씬 효율적이다.
- 재사용성이 좋은 모듈식 아키텍처가 정의되어 있다.
- 타입스크립트를 제공한다.
- 단점을 기술해주세요.
- Express.js에 비해 구조가 정형화되었다.
- Node.js 기반의 서버 애플리케이션 개발을 위해 만들어진 프레임워크로, 브라우저에서 실행되는 JavaScript코드 개발에는 적합하지 않다.
- 코드의 추상화 수준이 높기 때문에 초기 학습 비용이 높을 수 있다.
- Nest.js의 특징은 무엇인가요?
'부트캠프' 카테고리의 다른 글
| [WIL] 사전캠프 2주차 (0) | 2024.06.28 |
|---|---|
| 24/06/26 웹개발 2주차 (0) | 2024.06.26 |
| [WIL] 사전캠프 1주차 (0) | 2024.06.21 |
| 24/06/20 웹개발 1주차 (0) | 2024.06.20 |
| 24/06/19 게임 서버의 역사 (0) | 2024.06.19 |