본문 바로가기

분류 전체보기534

정규 표현식 정규 표현식 정규 표현식(Regular Expression 또는 Regex)은 문자열 패턴을 나타내기 위한 형식 언어입니다. 정규 표현식은 텍스트에서 특정 패턴을 찾거나 매칭하는 데 사용됩니다. 정규 표현식은 다양한 메타문자, 문자 클래스, 반복자 등의 특수한 기호와 조합으로 구성됩니다. 각각의 기호는 특정한 의미를 가지며, 특정 패턴을 표현하기 위해 사용됩니다. 일반적으로 정규 표현식에서 사용되는 몇 가지 기호와 용어는 다음과 같습니다: 메타문자(Metacharacters): 정규 표현식에서 특별한 의미를 가지는 문자로, 예를 들면 ".", "^", "$", "*", "+", "?", "{", "}", "[", "]", "(", ")" 등이 있습니다. 문자 클래스(Character Class): 대괄호.. 2023. 6. 30.
toast ui vs React-Quill 블로그에서 에디터를 두개 중 뭘 써야할지 고민하다가 결국 toast ui를 사용하기로 했다. 사실 React-Quill을 사용하면 이미지 크기를 마우스 드래그로 편하게 조절할 수 있어서 더 좋은데 toast ui처럼 그냥 사진을 붙여넣기 하면 자동으로 이미지 핸들러가 작동해서 핸들러 함수에서 백엔드로 이미지 데이터를 넘겨주면 정말 좋을텐데 React-Quill에는 제공하는 이미지 핸들러가 없어서 내가 직접 구현해야 하는데... 너무 귀찮다... toast ui에서 이미지 크기를 조절하면 되잖아?? 그런데 toast ui는 이미지 조절 옵션을 제공하지 않는다. 그래서 직접 또 구현해야하는데 React-Quill에서 이미지 핸들러를 어떻게 동작하게 할 것인가가 더 쉬워보여서 반나절 정도 도전했는데 결국 실패.. 2023. 6. 29.
도봉산 등산 내 부하 한명을 데리고 도봉산에 갔다. 동네 언덕인지 알았는데 알고보니 700m가 넘는 히말라야급 산맥이었다. 중간에 호랑이도 만나서 같이 사진 찍었다. 등산을 마치고 백슉 비슷한 삼계탕을 먹었는데 인삼주가 1잔씩 나와서 너무 좋았다. 인삼의 힘이 느껴졌다. 집에 도착하니 2시쯤 돼서 씻고 바로 3시부터 11시까지 알바를 했는데 인삼의 기운으로 버텨냈다... 2023. 6. 29.
20230629 요즘 여름인데 벌써 가을 타는지 생각이 많아진다.. 방학이라서 패턴이 바껴서 그런 것 같긴한데 이제 학교를 떠날 때가 왔다는 확신이 든다. 빨리 취직을 하고 싶은 마음이 점점 강하게 느껴지기도 하고 앞으로 걱정이 많다.. 항상 그랬듯이 일이 잘풀리겠지만 새로운 것에 도전하고 스스로 선택하는 것이 아직도 무섭다. 2달 정도 뒤에 알바를 그만두고 학교에 복학하자마자 이력서를 뿌릴 예정인데 막상 하면 별거 없겠지만 두려움은 실체를 만나기 전에 생기니깐 어쩔 수 없다.. 내 본성이 고민이 많은 성격이라 가끔씩 혼자 고민을 하면서 우울해지는 경향이 있는데 해결 방법은 친구들과 놀러가면 조금 기분이 풀려서 좋다. 난 사람을 좋아하는 것 같다. 기분 전환을 위해 형들에게 연락해서 밥 좀 얻어먹어야겠다... 2023. 6. 29.
배포 관련 링크 창고 Minumal UI Kit https://minimal-kit-react.vercel.app/dashboard/app Minimal UI Kit minimal-kit-react.vercel.app CORS 문제 https://shared.tistory.com/188 짜증나는 CORS(Cross Origin Resource Sharing) 오류 프론트엔드 개발자도 아니지만 웹서비스 관련 코드를 조금 만져야하는 위치에 있는지라 얇은 지식으로 근근히 버티고 있다. 지난번에 브라우저 관련해서 코드를 수정하다가 CORS 이슈를 알게되 shared.tistory.com https://velog.io/@suasue/NestJS-CORS-%EC%84%A4%EC%A0%95 NestJS | CORS 설정 프론트에서 난 에.. 2023. 6. 24.
크루스칼 알고리즘 크루스칼(Kruskal) 알고리즘은 최소 신장 트리(Minimum Spanning Tree)를 구하는 알고리즘 중 하나입니다. 최소 신장 트리는 가중치가 있는 그래프에서 모든 정점을 포함하면서 간선의 가중치 합이 최소인 트리를 말합니다. 크루스칼 알고리즘의 동작은 다음과 같습니다: 그래프의 모든 간선을 가중치 순으로 오름차순으로 정렬합니다. 빈 신장 트리를 생성합니다. 가장 작은 가중치를 가진 간선부터 시작하여, 해당 간선의 양 끝점이 서로 다른 집합에 속해 있다면, 간선을 신장 트리에 추가합니다. 이를 위해 Union-Find 자료구조를 사용하여 각 정점이 어떤 집합에 속해 있는지 확인합니다. 모든 간선을 처리할 때까지 3단계를 반복합니다. 크루스칼 알고리즘은 간선의 가중치를 기준으로 처리하기 때문에 .. 2023. 6. 18.
다익스트라 알고리즘 다익스트라(Dijkstra) 알고리즘은 그래프에서 한 정점으로부터 다른 모든 정점까지의 최단 경로를 찾는 알고리즘입니다. 다익스트라 알고리즘은 음의 가중치를 갖는 간선이 없는 경우에 최적의 결과를 보장합니다. 다익스트라 알고리즘의 개념과 시간 복잡도에 대해 자세히 설명드리겠습니다. 개념: 출발 정점으로부터 각 정점까지의 최단 거리를 저장하는 배열을 초기화합니다. 출발 정점의 최단 거리는 0이고, 다른 정점들의 최단 거리는 무한대로 설정합니다. 우선순위 큐를 사용하여 최단 거리가 가장 작은 정점을 선택하고, 해당 정점과 연결된 정점들의 최단 거리를 업데이트합니다. 업데이트된 거리가 더 작은 경우에만 갱신합니다. 모든 정점을 방문할 때까지 위의 과정을 반복하여 최단 거리를 찾습니다. 시간 복잡도: 다익스트라.. 2023. 6. 18.
투 포인터 알고리즘 투 포인터 알고리즘은 배열 또는 리스트에서 두 개의 포인터를 사용하여 원하는 결과를 찾는 알고리즘 기법입니다. 이 알고리즘은 주로 선형 시간(O(N))에 문제를 해결하는 효율적인 방법으로 사용됩니다. 특히, 정렬된 배열이나 리스트에서 특정한 조건을 만족하는 요소를 찾거나, 부분 배열 또는 부분 리스트를 찾는 데 유용합니다. 투 포인터 알고리즘은 일반적으로 다음과 같은 두 가지 포인터를 사용합니다: 시작 포인터(Left Pointer): 배열이나 리스트의 시작 위치를 가리킵니다. 끝 포인터(Right Pointer): 배열이나 리스트의 끝 위치를 가리킵니다. 이 두 포인터는 주로 다음과 같은 방식으로 조작됩니다: 시작 포인터와 끝 포인터가 서로 다른 요소를 가리키며, 이들을 이용하여 특정한 조건을 만족하는.. 2023. 6. 17.
DP 알고리즘 DP(Dynamic Programming) 알고리즘은 큰 문제를 작은 부분 문제로 나누어 푸는 기법입니다. 작은 부분 문제들의 결과를 저장하고 활용하여 중복 계산을 피하면서 효율적으로 문제를 해결합니다. DP는 최적화 문제나 조합 문제를 해결하는 데에 주로 사용되며, 다음과 같은 특징을 가지고 있습니다. 장점: 1. 중복 계산을 피할 수 있습니다: 작은 부분 문제의 결과를 저장해두고 재사용함으로써 중복 계산을 피할 수 있습니다. 이로써 계산 시간을 줄이고 효율적인 알고리즘을 구현할 수 있습니다. 2. 문제를 작은 부분으로 나누어 해결할 수 있습니다: 큰 문제를 작은 부분 문제로 분할하여 해결하는 방식으로 문제를 더 이해하기 쉽게 만들 수 있습니다. 이로써 복잡한 문제를 단순화하고 해결할 수 있습니다. 3.. 2023. 6. 12.