분류 전체보기
-
퀵 정렬 알고리즘 (Quick sort Algorithm)알고리즘, 자료구조/정리 2023. 3. 14. 13:35
틀린 내용을 발견하신 경우 말씀 부탁드립니다! 🙇 퀵 정렬은 분할 정복(Divide and conquer) 전략 중 하나로 재귀적 알고리즘에 해당한다. 분할 정복 전략은 그대로 해결할 수 없는 문제를 작은 문제로 분리하고 결과를 모아 원래의 문제를 해결하는 전략이다. 분할 정복 전략으로 문제를 풀기 위해선 아래 단계를 거친다. ① 문제가 기본단계가 될 때까지 나눈다 (Divide) ② 기본 단계를 해결한다 (Conquer) ③ 기본 단계의 답을 통합해 가장 큰 문제(원래 문제)의 답을 도출한다 (Combine) 분할 정복 전략 예시 가로 14, 세로 6인 직사각형을 똑같은 크기의 정사각형으로 나누면 총 몇 개의 정사각형이 반환되는가? 정사각형은 최대한 크게 만들도록 한다. 1. 주어진 직사각형을 최대한 ..
-
[Javascript] test() 사용시 정규표현식에 g 플래그 포함할 경우언어, 프레임워크/Javascript & Typescript 2023. 3. 13. 15:36
틀린 내용이 있을 수 있습니다. 발견하시면 말씀 부탁드립니다! 🙇 정규표현식과 test() 메소드를 통해 문자열에 숫자가 포함되어있는지 체크하는 코드를 작성하다가, 글로벌(g) 플래그 여부에 따라 결과가 다른 것을 알게되었다. let checkNum = /[0-9]/; let checkNumGlobal = /[0-9]/g; mdn test method 문서를 확인해보니, 정규표현식에 g플래그를 붙이고 test() 메소드를 실행할 때 결과가 true일 때마다 정규표현식 객체의 lastIndex 프로퍼티를 업데이트한다고 되어있다. lastIndex는 다음 메소드 실행시 시작할 인덱스이다. 만약 test() 메소드 결과가 false이면 lastIndex가 0으로 업데이트 된다. 참고 자료 https://dev..
-
[React Native] 개발 환경 세팅하기프론트엔드/React 2023. 3. 8. 12:34
틀린 내용이 있을 수 있습니다. 발견하시면 말씀 부탁드립니다! 🙇 개인 플젝의 기본 기능이 어느 정도 구현되었으니 아이폰에서 앱을 테스트해보고자 했다. 아이폰 앱의 경우 testflight를 통해 테스트를 할 수 있는데 이를 위해선 애플 개발자 계정을 등록하고 연회비를 지불해야 한다. 그런데 애플 개발자 등록이 안 되는 이슈가 발생했다. 여러 포스트들에서는 개인 정보 입력하는 부분에 영문이 아닌 한글로 정보를 입력해야 한다고 하는데 해당 페이지에서 한글 입력이 안 되는 것이었다. 이미 계정 등록에 한 번 실패한 상황이었기에(이 때는 영문으로 개인 정보를 입력했다) 이번에는 무조건 패스한다!라는 생각이었고, 해결 방법을 찾기 위해 구글을 뒤져봤다. (해결 🥳 : Apple developer program ..
-
[MongoDB] Date type 필드의 default 설정시 Date.now와 new Date() 중 어떤 걸 사용해야할까?🧐데이터베이스/Mongodb 2023. 3. 5. 16:52
틀린 내용이 있을 수 있습니다. 발견하시면 말씀 부탁드립니다! 🙇 Nest.js 환경에서 mongoose 패키지를 사용해 스키마를 정의한 뒤 mongodb에 데이터를 저장했다. 이후 데이터를 조회해 보니 이상한 점이 있었다. 저장 시점이 다른데 DB상에는 생성 시간이 동일하게 기록돼 있던 것이다. 데이터 생성시간은 mongoose schema에서 default로 생성되게끔 했기에 스키마 파일을 살펴보았다.@Schema() export class Path { @Prop({ type: String, required: true }) tag: string; @Prop({ type: String, required: true }) coordinateList: string; @Prop({ type: Object, r..
-
[개인] DLD Project (6) - Docker를 이용한 MongoDB 설치 & 서버 연결 🐋프로젝트 2023. 2. 24. 11:47
틀린 내용이 있을 수 있습니다. 발견하시면 말씀 부탁드립니다! 🙇 읽어보면 좋을 내용 왜 굳이 도커를 사용해야할까? 왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유 컨테이너는 서버 애플리케이션을 배포하고 서버를 운영하는 표준적인 기술이 되어가고 있습니다. 하지만 처음 사용해본다면 그 장점이 잘 와닿지 않을 수도 있습니다. 왜 굳이 도커 컨테이너를 www.44bits.io Docker compose로 컨테이너 생성하기 [MongoDB] DB 털림 (랜섬웨어) 발견 아침에 테스트 앱에서 데이터가 보이지 않았다. docker 컨테이너 문제인가 싶었으나, 확인해 보니 mongodb 컬렉션이 사라졌다. mongo db log를 확인해 보았다. dropDatabase..? $ sudo d..
-
[개인] DLD Project (5) - 지도상 두 좌표 사이 거리 구하기 (feat. Haversine 🤔)프로젝트 2023. 2. 23. 11:47
틀린 내용이 있을 수 있습니다. 발견하시면 말씀 부탁드립니다! 🙇 현재 내 위치에서 목적지까지의 거리를 구하여 사용자에게 보여주는 기능을 구현해 보자. Google Maps Distance Matrix API를 통해 지점 간의 거리 데이터를 가져올 수 있다고 하며, 검색해 보면 해당 API를 통해 기능을 구현한 블로그 글들도 나온다. 하지만 난 해당 API를 사용하지 않기로 했다. 왜냐하면 우리나라에서는 대중교통을 이용했을 때의 거리만 조회할 수 있도록 한정되어 있기 때문이다. 이는 이번 프로젝트의 주제와는 거리가 있기에 계산식을 통해 두 지점 간의 거리를 구하기로 했다. (사실 걷는 사람 입장에서는 대중교통을 통한 거리나 직선거리나 도긴개긴이다🥲) 처음에는 단순히 두 지점의 좌표를 알고 있기에 어릴 적..
-
[개인] DLD Project (4) - Google map Polyline프로젝트 2023. 2. 14. 22:49
틀린 내용이 있을 수 있습니다. 발견하시면 말씀 부탁드립니다! 🙇 Google map polyline을 통해 구글맵 위에 도형을 그릴 수 있다. 나는 불필요하게 Google polyline 객체 생성하는 걸 지양하고자 사용자가 특정 버튼을 클릭해야 지도상에 도형이 그려지도록 했다. const handleDisplayPolylineButton = () => { // localstorage에 저장한 좌표배열 추출 let pathList = localStorage.getItem('pathList'); if (pathList === null) { alert('No path data.'); } pathList = JSON.parse(pathList); // 도형 객체 생성 const flightPath = new..
-
[개인] DLD Project (3) - Google map Autocomplete 외프로젝트 2023. 2. 12. 18:19
틀린 내용이 있을 수 있습니다. 발견하시면 말씀 부탁드립니다! 🙇 Google Map API 연동 작업 1. React 환경에서 Google palce API 사용 googlemaps/react-wrapper 설치 후, Wrapper 컴포넌트를 사용한다. 해당 컴포넌트를 가장 바깥쪽에 두어야 하위 컴포넌트에서 google map API를 정상적으로 사용할 수 있다. Wrapper의 apiKey 프로퍼티에는 구글 프로젝트 생성 시 발급된 API Key를 입력하면 되고, libraries 프로퍼티에는 추가적으로 사용하는 라이브러리를 입력하면 된다. import { Wrapper } from '@googlemaps/react-wrapper'; ... const App = () => { return ( ); }..