본문 바로가기

분류 전체보기346

JavaScript - async / defer 스크립트 속성 (feat. kakao sdk 로컬 에러) 카카오 sdk 는 로컬에서 돌아가지 않고 퍼블릭 url 에서만 돌아가게 된다. 스크립트 형식으로 삽입되면 에러를 내뱉을 때까지 한참을 기다려야 해서로컬 개발 환경에서의 개발자 경험이 좋지 못하다.  // .... err// 나 : 잉....? 왜 안되지?   왜 그럴까html  은   async script 안에 async 속성을 사용하면 마찬가지로 브라우저는 백그라운드에서 다운로드한다.따라서 스크립트를 다운로드 하는 도중에도 HTML 파싱은 계속된다. 파싱이 완료 된후 스크립트는 실행된다.defer 와 달리 DOMContentLoaded  이벤트를 신경쓰지 앟고 HTML  파싱 후 그냥 되는데로 실행이 된다.실행순서가 보장이 안되고 제각각이다.     해결async 옵션을 통해 비동기적으로 완료되는대로.. 2024. 7. 15.
알고리즘 - 퀵 정렬(Quick Sort) 퀵 정렬 (Quick Sort)이란퀵 정렬은 특정 원소(피벗) 기준으로 주어진 배열을 두 부분 배열로 분할한 뒤, 각 부분 배열에 대해서 퀵 정렬을 순환적(재귀적)으로 적용하는 방식이다 퀵 정렬은 최악의 경우 시간 복잡도 O(n²) 이고 평균적인 시간 복잡도는 O(nlogn) 이다. 최악의 경우는 피봇이 배열의 맨 처음 혹은 마지막으로 쏠려 일어나는 불균형적인 분할인 상황이며, 최선의 경우는 피봇이 정확히 n/2크기로 분할되는 균형적인 분할로 볼 수 있다. 하지만 피봇의 임의성만 보장된다면 평균성능 O(nlogn) 의 가능성이 매우 높게 된다. 퀵 정렬을 분할 정복 단계로 본다면분할: 피벗을 기준으로 주어진 배열을 두 부분 배열로 분할한다.정복: 두 부분배열에 대해서 퀵정렬을 순환적으로 적용하여 각 부분.. 2024. 6. 9.
Windows - PowerShell 에서 ohmyzsh git alias 명령어 적용하기 맥 쓰다가 윈도우를 쓰려니터미널 인터페이스 부터가 답답했다.하지만 리눅스 기반의 zsh 는 윈도우 기반의 개발 환경에서 너무 느렸고,이슈에 대한 예측이나 히스토리가 많이 없기에 리스키하다고 판단되었다. 기본적으로 파워쉘에서 원하는 alias  이름으로 된 함수를 만들고 명령어를 리턴하면 된다. (아주 간단하다)하지만  ohMyZsh 에서 사용하던 git alias 는 매우 방대함으로 포스팅을 해본다.  하지만 이 많은 명령어를 하나하나 언제 만들어주나 하는 생각에 아래 레포를 찾아버렸다.  GitHub - gluons/powershell-git-aliases: :octocat: Oh My Zsh's Git aliases for PowerShell.:octocat: Oh My Zsh's Git aliase.. 2024. 6. 4.
WSL2 실행에러 - this update only applies to machines with the windows subsystem for linux 윈도우에 도커를 설치하던 중이었다.wsl  을 설치하고  wsl2  리눅스 커널을 업데이트하다가 맞닥드린 에러를 해결해보았다. Docker(5) 윈도우에 WSL2 설치하기맥북과 같은 도커기반 개발환경을 구축하기 위해서 리눅스로 개발환경 세팅중이다. 지난 시간에는 윈도우에 터미널을 깔고 리눅스(Ubuntu)를 설치하였으니, 이번에는 도커를 실행할 수 있도록 WSLdevbirdfeet.tistory.com   1. 일단 다운받은 최신업데이트 파일의 경고창이 떴다!  2. window 버튼 누르고 검색해서  window 기능 켜기/끄기 창을 켜고, 아래 보이는 ✅ linux 용  winows  하위시스템과 ✅가상머신 플랫폼 에 체크해준다 3.윈도우 재부팅한다. 다시 실행하니 잘된다 (시 - 원) 2024. 6. 3.
알고리즘 - 이진 탐색 탐색은 배열 형태로 주어진 데이터에서 원하는 값을 가진 데이터를 찾는 알고리즘이다.이진 탐색은 입력된 데이터가 정렬된 상태로 주어진 경우에 효과적으로 수행할 수 있다. 여기서는 데이터가 오름차순으로 정렬되어 있다고 가정한다. 먼저 큰 틀에서 심플하게 4단계로 생각해보았다.배열은 오름차순 기준이고, 탐색키 key 와 가운데 원소 값이 같다면 즉시 종료한다.가운데 원소를 기준으로 좌우로 배열을 쪼갠다.key 와 가운데 원소를 비교해서 작으면 좌배열 크면 우배열에서 검사를 다시 시작한다.key 를 찾을 때까지 1번부터 다시 반복한다. 재귀적 용법을 사용한 이진트리 알고리즘BinarySearch 라는 함수의 입력값은 arr과 right,left, key 라는 값이다.arr 은 오름차순 정렬된 배열이다.key 는.. 2024. 5. 19.
알고리즘 - 알고리즘이란 알고리즘이란 주어진 문제를 해결하기 위한 일련의 처리과정을 단계적으로 나열한 것입출력 / 명확성 / 유한성 / 유효성설계 → 기술 → 정확성 분석 → 효율성 분석 알고리즘의 기본 자료구조선형 자료구조 : 배열 / 연결 리스트 / 스택 / 큐비선형 자료구조 : 트리 / 그래프 알고리즘의 대표적인 설계기법- 분할 정복 방법- 동적 프로그래밍 방법 - 욕심쟁이 방법 알고리즘의 분석정확성 / 효율성 분석 (공간 복잡도 & 시간복잡도) - 시간 복잡도알고리즘을 실행시켜 완료까지 걸리는 시간으로알고리즘에서 수행되는 단위 연산의 총 횟수로 계산된다입력 크기의 함수로 표현하며 최악의 수행 시간을 사용한다 점근 성능입력 크기가 충분히 커질 때의 알고리즘 성능다항식의 수행 시간에 대해서 계수 없이 최고 차항 만을 표시- .. 2024. 5. 11.
JavaScript - Debugger 사용기 (Feat. 크롬 개발자 도구) 디버거 (잘) 사용하고 싶다 디버거 사용이 손에 익지 않아 우리들의 콘솔로그로 디버깅을 주로 하였는데 손이 아파서 이제 타이핑을 못치겠다.. ("console": ..🤨?) 라는 핑계를 대면서 크롬에서 제공하는 디버깅 툴을 사용해 보려고 한다 이번에 포스팅을 정리해보며 한번이라도 더 손에 익기를 바라며 🙃 JavaScript - Debugger 사용기 (Feat. 크롬 개발자 도구) 그렇다면 우리의 디버거는 어디 숨어있을까 개발자 도구를 키면 [Sources] 라는 탭이 있다 [Sources] 탭을 클릭해보면 조금 복잡해보이지만 섹션이 크게 3개로 나뉘어 있다 소스파일들 디렉터리 소스파일들의 코드들 디버거 툴 우리가 사용할 디버거 툴은 빨간 박스로 표기해놓았다 좀더 자세히 살펴보면 Watch, Break.. 2024. 3. 27.
DatabaseSystem(1) 데이터베이스의 이해 1. 데이터베이스의 태동 기업 등의 대규모 조직의 운영의 변화로 데이터베이스가 생겼다 - 일부 의사결정권자의 과거 경험과 직관 → 전문 분석가 / 경영자에 의해 가공된 정보를 기반한 운영시스템으로 변화 - 이 변화는 데이터의 형태적 다양화 뿐 아닌 데이터의 양적 증가에 기인했다 - 그래서 데이터 관리에 요구되는 시간과 비용이 증가↑ & 별도의 관리장치가 필요 → 이는 데이터베이스로 발전 2. 데이터베이스 시스템의 개요 데이터베이스(Database)는 많은 수의 데이터를 저장해두고 필요시 원하는 데이터를 빠른시간에 검색하여 사용할 수 있도록 지원하는 장치이다. 이러한 데이터를 관리하고 업무를 자동화할 수 있는 프로그램이 있다면 효과으로 업무를 처리할 수 있을 것이다 → DBMS 로 발전 데이터베이스 관리 .. 2024. 3. 2.
Strapi(2) ContentType 설정하기 Strapi 는 프론트에게 매우 유용한 CMS 이다 현재 진행중인 Next.js 프로젝트에 적용해보기 위해 스트라피를 이용해서 직접 API 를 만들어 보는 과정을 포스팅에 담았다 지난 시간에는 Strapi 를 설치하여 어드민 페이지까지 띄웠고, Strapi - 스트라피 설치하기 현업에서는 Strapi 를 사용하고 있다. 하지만 나도 사! 용! 하고 싶었다 그말인 즉슨 누군가가 차려놓은 밥상말고 나도 요리를 해보고 싶었다는 말과 동일하다 그래서 소원대로 Strapi 로 요리를 좀 devbirdfeet.tistory.com 이번 시간에는 어드민에서 Content-Type, 즉 인터페이스를 모델링하는 과정을 정리해보았다 다음시간에는 Content-Type 을 가지고 mock-up 데이터를 추가한 뒤 api 로.. 2024. 2. 29.
반응형