Today Sangmin Learned
article thumbnail
[짧] rust-analyzer가 작동하지 않는 문제 해결 (`FetchWorkspaceError: rust-analyzer failed to load workspace: Failed to load the project at ~`)
etc 2023. 12. 31. 13:48

Cargo new ~로 프로젝트를 생성한 뒤 코드를 작성하는데 자동완성이 작동하지 않아서 확인해보니 VSCode의 `rust-analyzer` extension이 위 사진과 같이 에러 메시지를 뱉으며 작동하지 않는 문제가 발생했다. 원인은 간단했는데, Cargo로 생성한 프로젝트가 무조건 루트 디렉토리에 위치해야 하기 때문이었다. rust |- rust_basic_concepts 이러한 형태로, Cargo 프로젝트들을 rust라는 폴더 내에서 생성했었는데, 이것이 원인이었다. 각 프로젝트들을 루트 디렉토리에 위치시킴으로써 문제를 해결했다. 2/2 추가) 각 Cargo 프로젝트의 개수가 많아지면서, 이 프로젝트들을 하나의 'rust' 폴더 내에 넣어야 할 필요성이 생겼다. 이 경우에, 모든 프로젝트를 담은..

article thumbnail
[짧] Error: ObjectMiddleware.register: serializer for mini-css-extract-plugin/dist/CssModule/null is already registered 에러 해결
Web/React 2023. 11. 1. 02:24

모노레포 환경에서 Next.js 레포에 vanilla-extract 종속성을 추가하게 되었다. 이 때, vanilla-extract의 next-plugin을 설치한 뒤 링크에서처럼 next.config.js에 plugin 관련 설정을 추가해주고 해당 레포를 실행했더니 아래 사진과 같은 에러가 발생했다. 나와 같은 에러를 겪은 분이 올린 이슈를 참고하였는데, 아래의 코멘트를 보고 해결책을 찾을 수 있었다. 원인은 모노레포 내 각 레포에서의 Next.js 버전이 통일되지 않았기 때문이었다. 현재 모노레포 환경에는 레포가 3개가 있는데, Next.js 버전은 각각 ^14.0.1, ^13.4.19, ^13.4.19 였다. 14 버전으로 올린 레포에서 위와 같은 에러를 확인했고, 각 레포의 Next.js 버전을 ..

블로그 이전
etc 2023. 6. 8. 11:26

이제 해당 블로그에는 더이상 글을 올리지 않고, 앞으로의 글은 https://sangmin.dev 에 올릴 예정입니다. Posts Gatsby에서 Nextra로 블로그를 이전하게 된 계기에 대해 알아보자.Read More → Mon May 22 2023 sangmin.dev 일단 파뒀지만 여유가 없어 글을 하나도 작성하지 않았는데, 조만간 사내 배포 자동화 프로세스를 리팩토링한 글을 게시할 예정입니다. 많관부! 06-11 22:55 업데이트 배포 자동화 프로세스 전환기에 대한 글을 올렸습니다. https://sangmin.dev/migration-of-automated-deployment-process-with-serverless-framework-to-aws-amplify 배포 자동화 프로세스 전환기 ..

지금까지의 과정과 앞으로의 목표
회고록, 목표 2022. 6. 12. 23:40

아직 인턴 생활중이긴 하지만, 어쨌든 이 회사에서 일하는 것이 재밌고 급여도 만족할 만한 수준이라고 생각되어 이곳에서 정규직을 하기로 결심을 했다. 22일부터 정규직으로서 일을 하게 되는데, 아무래도 마인드셋의 측면에서도 변화가 필요하다고 생각되어 동기부여를 위해 글을 작성한다. 다음 글은 따로 판 블로그에서 작성하게 됐으면 좋겠다. 지금까지의 나는 이랬다. 특정 라이브러리를 사용하거나 사용하지 않는 이유에 대해서 크게 궁금해하지 않았다. 예를 들면 사내 자체 프로덕트에서 reduxjs-toolkit 대신에 Context API를 사용하고 있는데, 왜 Redux를 사용하지 않는가에 대해서 궁금해하지 않았다. 그냥 쓰지 않는데는 이유가 있겠구나 싶은 생각으로 큰 의문을 가지지 않았다. Redux를 사용하지..

[Python] BOJ(백준) 2178번 - 미로 탐색
CS/알고리즘 2022. 3. 23. 18:18

링크 https://www.acmicpc.net/problem/2178 난이도(solved.ac 참고) 실버1 풀이 이 문제를 왜 지금까지 안 풀었었는지 모르겠다. BFS(DFS도 쓸 수 있긴 함)의 너무 기본적인 문제라 쓰기도 좀 애매하긴 한데.. 값을 받아오고 각 위치별로 방문 여부를 확인하는 visited 배열을 선언해준다. 그다음 0, 0 위치에서 BFS 함수를 시작하면서 1) nx와 ny가 미로를 벗어났는지 확인 2) (nx,ny) 좌표를 이미 방문했는지 여부를 확인 3) 1, 2 모두 충족했을 경우 해당 좌표가 벽인지 확인(0이면 벽, 1이어야 지나갈 수 있는 길임) 이 경우 방문처리를 하고 큐에 지금까지 이동한 값인 distance에 1을 더한 값을 넣는다. 시작점도 거리에 포함한다고 했으므..

[Python] BOJ(백준) 17086번 - 아기 상어 2
CS/알고리즘 2022. 3. 23. 08:43

링크 https://www.acmicpc.net/problem/17086 난이도(solved.ac 참고) 실버2 풀이1(메모리 초과) 왜 메모리초과가 떴는지 이해가 안 간다.. 시간 초과도 아니고 메모리 초과라니. ans값을 심지어 배열로 두지도 않았고 상수로 두어 최댓값을 계속 업데이트하는 식으로 진행했는데? 메모리 초과가 뜬 원인을 아는 분이 있다면 댓글로 남겨주시면 좋겠다. 하.. 그래프탐색 문제를 오랜만에 푸니까 정신이 나갔나보다. visited 배열을 당연히 선언해줬어야 했는데 실수했다. 풀이2(AC) 풀이1에서 visited를 추가했다. 풀이3(AC) 위 풀이와는 다르게 1일 때 큐에 넣고 BFS를 함수 형태로 빼지 않고 바로 시작했다. 뭐 결국 거리의 최댓값을 구하는 것이니 어렵지 않았다만 ..

[Python] BOJ(백준) 10942번 - 팰린드롬?
CS/알고리즘 2022. 3. 6. 19:45

링크 https://www.acmicpc.net/problem/10942 난이도(solved.ac 참고) 골드3 풀이 질문의 수가 100만개까지 있을 수 있기 때문에 인덱싱을 하면 100% 틀린다. 특정 구간이 팰린드롬이기 위해서는 3가지 조건 중 하나를 만족해야 한다. 1) 구간의 길이가 1이어야 한다. - 구간의 길이가 1이라면 무조건 팰린드롬이다. 2) 구간의 길이가 2라면 두 값이 같아야 한다. - 숫자가 두개가 있을 땐 무조건 같을 경우에만 팰린드롬이 되며, 다르다면 팰린드롬의 조건을 만족하지 못한다. 3) 구간의 길이가 3 이상이라면, 구간의 시작점과 끝점의 값이 같으면서 그 두 점을 제외한 구간이 팰린드롬이어야 한다. - 1 2 1 3 1 2 1 에서 1 3 1 2 1을 떼서 봤다고 해보자...

[Python] BOJ(백준) 12852번 - 1로 만들기 2
CS/알고리즘 2022. 3. 5. 22:07

링크 https://www.acmicpc.net/problem/12852 난이도(solved.ac 참고) 실버1 풀이 해당 위치에 방문하지 않았다는 전제 하에 되는 값(3으로 나눠떨어지거나, 2로 나눠떨어지거나, 1을 빼거나)을 다 넣어주는데, 값을 줄여가면서 지나가는 경로를 answer_arr에 하나씩 넣어준다. 큐에는 현재 숫자와 그 숫자에 오기까지의 경로가 담겨있다. 1이 되는 순간 함수를 마치고 숫자 및 그 숫자까지의 경로를 출력한다. 습관적으로 sys.stdin.readline을 사용했는데, input값이 줄줄이 들어오는 상황이 아니므로 굳이 쓰지 않아도 무방하다.

[Python] BOJ(백준) 1294번 - 문자열 장식
CS/알고리즘 2022. 2. 21. 00:32

링크 https://www.acmicpc.net/problem/1294 난이도 플래티넘2 풀이 cmp_to_key를 좀 더 딥하게 사용해보는 문제를 찾아보다가 발견한 문제다. 핵심 아이디어는, 처음에 cmp_to_key로 제일 먼저 위치한 문자열 내의 문자를 하나씩 빼주면서 그때마다 다시 한 번 cmp_to_key를 진행하는 것이다. 매번 이렇게 진행하는 것이 답인 이유는, 단어를 어떻게 잘라야 하는지에 대한 설명이 없으므로(문제에서는 적절히 쪼갠다고 했으므로, 완전히 임의라고 봐야한다) 결국 모든 케이스마다 제일 앞에 나오는 값을 넣음으로써 해결할 수밖에 없기 때문이다. 아이디어가 문제였을 뿐.. 구현은 어렵지 않았다. temp라는 빈 문자열을 두고 cmp_to_key로 sort한 arr에 대해 첫번째..

[Python] BOJ(백준) 16496번 - 큰 수 만들기
CS/알고리즘 2022. 2. 20. 22:19

링크 https://www.acmicpc.net/problem/16496 난이도 플래티넘5 풀이 functools 모듈의 cmp_to_key를 사용했다. 이 cmp_to_key는, 람다로는 불가능한 두 연산값들끼리의 비교를 할 때 유용하게 사용할 수 있다. 우선 문제 자체에 대해서는 그냥 수들을 이어붙여서 최댓값을 만들기만 하면 되는 문제였는데, 어떻게 최댓값을 만드는지를 생각하기가 어려운 문제였다고 생각한다. 결론부터 이야기하면 직접 두 숫자 a, b를 ab, ba 형태로 붙여봤을 때 값이 더 큰 경우에 해당하는 숫자가 앞으로 오도록 정렬 기준을 설정하면 된다. 그리고 이 ab와 ba의 크기를 비교하는 것을 cmp_to_key로 할 수 있다. arr내의 두 값을 이어 붙인 값이 클수록 앞으로 위치하게 ..