![[JS] CommonJS와 ES모듈](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FUXYWO%2FbtsLh3ktc4B%2FAAAAAAAAAAAAAAAAAAAAAAitdY6jYUvKxnPqBCpnlWcz-N2f3eeNSLWZrfxvt9wK%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DjcFkgU4tyA%252Fe2jpV%252B0I%252FDET7Wa8%253D)
개요프론트엔드 개발을 막 접했을 시점에 VScode에서 이런 경고 문구를 보게 되었다. ▼ JS에 대해 잘 모르기도 했고, 애초에 ES 모듈이 뭔지 그리고 CommonJS 모듈이 뭔지도 몰랐기도 하고 잘 동작하기에 그냥 넘어갔었다. 그런데 이런 사소한 것들을 그냥 지나치면 나중에 큰 문제가 될 수 있을 거 같아 한 번 찾아보면서 정리를 해봤다. CommonJSCommonJS란 CommonJS는 Node.js의 초기 모듈 시스템으로, 모듈을 로드하고 관리하기 위해 설계된 시스템이다. 주로 서버사이드에서 사용이 된다. 상당히 레거시한 느낌이 강하지만 Node.js 생태계 전반에서 사용되고 있으며 많은 라이브러리에서 지원이 된다. (개요에서 필자가 뭔지도 모르고 썼음에도 동작할 수 있었던 이유다.) Commo..
![[Flutter][Widget][Issue] TabBar 왼쪽에 공간이 생기는 현상](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbhhn0Q%2FbtsLfBHgGLu%2FAAAAAAAAAAAAAAAAAAAAALQQfQLEQX4JytzdzoXSlACdNVCORzfVYV33aroUefoV%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DjZvtGXi0iGtutHLMTEra5yGXaUk%253D)
문제 상황 TabBar를 이용하여 한 페이지에 여러 개의 뷰를 보여주는 UI는 거의 대부분의 앱에서 사용될 정도로 흔하다. 일반적으로는 고정된 개수의 TabBar를 사용하기에 스크롤 할 일이 없는데, 때로는 여러 개의 TabBar를 두어 스크롤이 들어가기도 한다. 그런데 스크롤을 넣기 위해 `isScrollable`을 `true`로 바꾸면 사진과 같이 왼쪽에 의문의 Padding이 들어가게 된다. ▼ 왜 이 빈 공간이 생기는 것이고, 어떻게 하면 제거할 수 있을까? 원인과 해결원인 원인은 `TabAlignment`에 있다. 사진의 설명에 나와있듯, 만약 TabBar의 `isScrollable`이 `true`가 되면 TabBar는 기본적으로 52pixel의 offset을 갖게 된다. 정확히는 `isSc..

문제수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} 이고, 길이는 3이다. 입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력첫째 줄에 수열 A의 가장 긴 감소하는 부분 수열의 길이를 출력한다. 문제 링크https://www.acmicpc.net/problem/11722 풀이다이나믹 프로그래밍을 사용하면 되는 문제다.다이나믹 프로그래밍을 사용하면 쉽게 풀린다는 것은 문제를 보고 바로 알았지만 시행..

문제천수는 여러 종류의 주사위를 가지고 쌓기 놀이를 하고 있다. 주사위의 모양은 모두 크기가 같은 정육면체이며 각 면에는 1부터 6까지의 숫자가 하나씩 적혀있다. 그러나 보통 주사위처럼 마주 보는 면에 적혀진 숫자의 합이 반드시 7이 되는 것은 아니다.주사위 쌓기 놀이는 아래에서부터 1번 주사위, 2번 주사위, 3번 주사위, … 의 순서로 쌓는 것이다. 쌓을 때 다음과 같은 규칙을 지켜야 한다: 서로 붙어 있는 두 개의 주사위에서 아래에 있는 주사위의 윗면에 적혀있는 숫자는 위에 있는 주사위의 아랫면에 적혀있는 숫자와 같아야 한다. 다시 말해서, 1번 주사위 윗면의 숫자는 2번 주사위 아랫면의 숫자와 같고, 2번 주사위 윗면의 숫자는 3번 주사위 아랫면의 숫자와 같아야 한다. 단, 1번 주사위는 마음대로..

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이완전 탐색과 BFS가 섞인 문제다.오늘도 피곤 이슈로... 대략적인 풀이만 올리고 다음에 몰아서 풀이를 올릴 예정이다. 우선 n이 작고, 제공되는 간선의 수도 100 보다 작기 때문에 모든 경우의 수를 다 해볼 수 있다.그러면 첫번째부터 마지막 간선까지 선을 하나씩 제거해나가며 BFS를 돌려보면 된다. 문제 조건이 하나만 끊어도 둘로 나눠지게 설계되어있기에 모든 간선을 한 번씩 끊어보며 확인해보면 된다. 그런데 처음에는 두 번 다 돌려야 하나? 했는데 양 쪽 구간을 모두 확인한다고 두번 돌릴 필요는 없다.n이 정해져있기 때문에 한쪽이 k개라면,..

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이대략적인 풀이는 오늘 작성하고 자세한 풀이는 내일 작성하겠다... (시간 이슈)next_permutations라는 함수가 있는데, 배열에 있는 다음 순열을 만들어주는 함수다.이를 이용해서 처음부터 끝까지 순열을 만들고 숫자로 바꾸면서 에라토스테네스의 체로 검사를 해주면 된다. 이런 함수가 있다는 걸 알았지만 dfs로 푸는게 좋지 않나 싶어서 재귀적으로 만드는 걸로 했다.이것저것 체크할 게 많아져서 굉장히 귀찮아지지만... 일단 이렇다. 자세하게 어떻게 돌아가는지는 시간이 충분할 때 작성하겠다. C++ 코드#include #include #inc..

문제상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N..

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 DFS로 하는 완전탐색자세한 풀이는 나중에... C++ 코드#include #include using namespace std;int answer = 0;bool V[8] = {0};void dfs(int C, int K, vector> &dungeons) { if (C > answer) answer = C; for (int i = 0; i > dungeons) { dfs(0, k, dungeons); return answer;}

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이우선 수식을 세워 확인을 해봤다. $2x + 2(y - 2) = brown$$2x + 2y - 4 = brown$ $(x - 2)(y - 2) = yellow$$xy - 2x - 2y + 4 = yellow$ $소거법...$$xy = brown + yellow$ 간단한 수식을 세워보면 $xy = brown + yellow$가 나오게 된다.하지만 해당 수식을 만족하는 $x$와 $y$값이 무조건 맞는 것은 아니다. 이는 $x$와 $y$에 대한 수식일 뿐, $brown$과 $yellow$에 대한 수식은 아니기 때문이다.따라서 $x$와 $y$값이 나오면..

문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이카테고리에도 나와있듯이 완전탐색을 하면 되는 문제다.다른 무언가가 더 있나 생각을 해봤지만, 총 들어오는 입력은 최대 40000개이며 비교하는 횟수도 최대 30000회이기 때문에 총 연산이 억 단위에 미치지 못한다.(값을 올리고 내리는 것까지 포함해도 역시나 코드 상에 있는 연산 횟수가 억 단위에는 절대 도달하지 못한다.) 그렇기에 하나하나 대조해가며 카운팅을 해주면 된다. 출력이 고민할 거리오히려 이 문제는 출력에서 고민을 많이 했다.가장 높은 점수를 받은 사람의 숫자가 아니라 번호를 출력해야하고, 여러명일 경우 오름차 순으로 출력해야한다. 3..