Today I Learned 프로젝트 기초 세팅 및 UI 구현 시작 Programmers 문제 풀기 Tailwind 너무 궁금했던 Tailwind를 드디어 사용해 봤다! 오늘 처음으로 사용해 보는 건데 생각보다 어렵지는 않다. 그런데 아직 익숙해지지 않아서 그런지 계속 tailwind-cheat-sheet에서 검색하면서 코드 짜느라 시간이 조금 소요됐다. 그리고 아직은 Tailwind의 장점을 잘 모르겠다. 무엇보다도 모두 똑같이 생긴 div에 className만 적어서 구분하려니 이 div가 어떤 부분인지를 잘 모르겠다. 컴포넌트명 고민하느라 귀찮긴 했지만 직관적인 이름으로 한눈에 어떤 분인지 파악 가능했던 styled-components가 잠시 그립기도 했다 ㅠㅠ 그래도 아직 첫날이니까 Tailwin..
Today I Learned MySQL Subquery 공부하기 프로젝트 초기 세팅하기 MySQL Subquery란? 쿼리 안의 쿼리라는 의미 하위 쿼리의 결과를 상위 쿼리에서 사용할 수 있다. Subquery는 where, select, from 절에서 유용하게 사용할 수 있다. INNER JOIN 대신 Subquery 사용해 보기 select u.user_id, u.name, u.email from users u inner join orders o on u.user_id = o.user_id where o.payment_method = 'kakaopay' INNER JOIN 사용했을 경우 SELECT * FROM users u WHERE u.user_id IN ( SELECT user_id FROM ..
Today I Learned MySQL JOIN 공부하기 MySQL JOIN이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미함 예) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한눈에 보고 싶을 때 MySQL LEFT JOIN select * from users u left join point_users p on u.user_id = p.user_id; LEFT JOIN은 왼쪽 테이블(table1)의 모든 레코드와 오른쪽 테이블(table2)의 일치하는 레코드(있는 경우)를 반환한다. MySQL INNER JOIN select * from users u inner join point_users p on u.user_..
Today I Learned Next.js 13 버전 Layouts 기능 공부하기 Next.js Layouts A layout is UI that is shared between multiple pages. On navigation, layouts preserve state, remain interactive, and do not re-render. Layouts can also be nested. You can define a layout by default exporting a React component from a layout.js file. The component should accept a children prop that will be populated with a child layout ..
MySQL MySQL GROUP BY SELECT name, count(*) FROM users GROUP BY name; GROUP BY로 동일한 범주의 데이터를 하나로 묶어서 범주별 통계를 내주는 것 예를 들면 Group by를 이용해서 1) 같은 성씨의 데이터를 하나로 묶고 2) 각 성씨의 회원수를 구할 수 있다. 위 쿼리가 실행되는 순서: from → group by → select from users: users 테이블 데이터 전체를 가져온다. group by name: users 테이블 데이터에서 같은 name을 갖는 데이터를 합친다. select name, count(*): name에 따라 합쳐진 데이터가 각각 몇 개가 합쳐진 것인지 세어준다. -- 주차별 좋아요 최솟값 구하기 -- MIN(..
Today I Learned Programmers 문제 풀기 mySQL 공부 MySQL SQL이란? SQL은 Structured Query Language의 약자로, 관계형 데이터베이스 시스템에서 자료를 관리하고 처리하기 위해 설계된 언어를 의미함 mySQL이란? MySQL은 오픈 소스 관계형 데이터베이스(RDBMS) RDBMS는 데이터가 열과 행으로 저장되어 데이터 구조를 쉽게 파악하고 이해할 수 있도록 사전에 정의한 관계로 데이터를 구성하는 데이터베이스 시스템을 의미함 Select 쿼리문이란? 데이터베이스에 명령을 내리는 것, 즉 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 것을 의미함 Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지로 구성됨 테이블과 필드 테이블:..
Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 조건에 맞게 수열 반환하기1 문제 설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다. 그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요. 입출력 예 arr result [1, 2, 3, 100, 99, 98] [2, 2, 6, 50, 99, 49] 입출력 예 #1 1, 3은 50 미만의 홀수 이므로 2를 곱하고, 100, 98은 50 이상의 짝수이므로 2로 나눕니다. 나머지 값들은 변경 조건에 해당하지 않으므로 바꾸지 않습니다. 따라서 [2, 2, 6, 50, 99, 49]를 retur..
Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 옹알이(1) 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return 하도록 solution 함수를 완성해 주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분..
Today I Learned Programmers 문제 풀기 면접스터디 Programmers 문제 풀기 예산 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품..
Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 이상한 문자 만들기 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return "try hello world" "TrY HeLlO WoRlD" "try hello world"는 세 단어 "try", "hello", "wo..