728x90
반응형
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 11, 12, 13, 14: 버블, 선택, 삽입 정렬)2024-05-12 20:52:40섹션 11: 버블 정렬버블 정렬은-오름차순인 경우-순회하면서 가장 큰 수를 가장 뒤로 보내는 정렬 방식이다.function bubbleSort(arr) { for (let i = arr.length; i > 0; i--) { for (let j = 0; j arr[j + 1]) { [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]; } } } return arr;}console.log(bubbleSort([9, 3, 5, 2, 1])); 스왑 여부를 체크하여 스왑이 일어나지 않을 경우에는 반복을 중단하여 최적화하였다.일반적으로 O(n^2), 가능한 최고의 경우 O(n)이다.function bubbleSort(arr) { let noSw..
- [ 언어·프레임워크/Spring Boot ][Spring Boot] LocalDateTime과 DB의 시간 데이터 불일치, 쿼리 오작동 문제(DateTimeFormatter으로 해결)2024-05-09 11:13:171. 날짜 조건 검색 시 불일치 문제Spring Boot에서 MyBatis를 이용해 DB 데이터를 조회하였다. 조회 조건에서 시간을 기준으로 조회하는 경우 기준 시간 이후의 데이터가 와야 하는데 그 이전 시간 데이터도 함께 오는 현상이 발생했다. 2. DateTimeFormatter으로 해결서버의 날짜 데이터의 경우 "2024-05-09 08:17:25"와 같은 문자열 형식으로 저장되어 있다. LocalDateTime 타입의 시간으로 조회 시 제대로 된 조회가 되지 않았다. DateTimeFormatter를 이용해 "yyyy-MM-dd HH:mm:ss" 형식의 문자열로 변경하여 쿼리를 날리니 정상적으로 조회가 되었다.LocalDateTime now = LocalDateTime.now();LocalDate..
- [ 언어·프레임워크/Spring Boot ][Spring Boot] ubuntu에서 git clone 후 gradle build하기2024-05-09 09:58:521. git clonegit clone https://postforty:@github.com/postforty/.git📢 application.properties 파일 빠트리지 않도록 주의! 2. gradle build./gradlew build위 명령어 실행 후 "-bash: ./gradlew: Permission denied" 에러가 발생한다면 아래 명령어로 gradlew에 권한을 부여한다.chmod +x ./gradlew기존 build 폴더를 지우고 다시 빌드하고자 한다면 아래와 같이 진행하면 된다../gradlew clean # build 폴더 삭제./gradlew clean build # build 폴더 삭제 후 빌드
- [ 언어·프레임워크/HTML·CSS ][HTML] 여러 html로 페이지가 구성된 홈페이지에서의 라우팅 문제2024-04-25 11:44:381. 모든 html 파일에서 메뉴명을 수정해야 하다니...회사 홈페이지의 서브 메뉴를 수정할 일이 있었다. 해당 html 파일을 열어 수정했고 다 끝났다고 생각했고 행복했다. 만약 이야기의 결말이 이랬다면 이 글은 쓰지 않았을 것이다.회사 홈페이지는 각 메뉴별로 각각 메뉴를 가지고 있는 방식이다. 다시 말해 메뉴별로 html 파일이 존재하고 각 페이지는 동일한 네브바 코드가 작성되어 있다. 심지어 어떤 메뉴는 서브메뉴도 이와 같은 구조로 되어 있다. 결국 소메뉴의 명을 하나만 수정할 것이 아니라 모든 html 파일에서 수정해야 한다는 것이며-어쩌면 처음으로-SPA가 무척 고맙게 느껴졌다.모든 html 파일에서 소메뉴의 명을 수정한다는 것은 이번 한번만이라면 해줄 만하다. 그래, 충분히 그럴 수 있다. 하..
- [ 언어·프레임워크/Node.js ][Node.js][TROUBLESHOOTING] 객체에 엉뚱한 속성이???2024-04-19 11:33:141. 객체에 엉뚱한 속성이???구동 중인 Node.js로 작성한 배치 서버에서 DB에 저장한 값이 간헐적으로 비정상적인 경우가 발견되었다. 콘솔에 에러 로그를 찍어 보았더니 다음과 같았다.YouError: WHERE parameter "apmac_id" has invalid "undefined" value이 문제의 특이한 점은 정상적인 객체가 전달되다가 간헐적으로 이러한 에러가 발생한다는 것이다. 2. const 사용을 잊지 말자!해당 속성이 없다는 에러가 발생하는 경우에 어떤 데이터가 오는지 콘솔에 찍어보았다. 정상적인 경우와 비정상적인 경우의 예는 아래와 같다.{ apmac_id: 1, count: 92 } // 정상{ fromAP_id: 92, toAP_id: 89, count: 6 } // 비정상..
- [ CS/Linux ][Linux] 생활코딩 리눅스 : 파일 찾기(locate, find), 백그라운드 실행(ctrl+z, jobs, fg), 항상 실행(daemon, service), 정기적 실행(cron)2024-04-15 10:41:201. locate✔️ 출처 : https://www.opentutorials.org/course/2598/142121.1. 설치locate 패키지보다 mlocate 패키지가 updatedb 작업이 빠르기 때문에 mlocate를 설치한다.root@(생략):/# sudo apt-get -y install mlocate😉 Mac OS의 경우 설치가 필요 없다. 1.2. updatedblocate 명령어는 실제 파일을 찾는 것이 아니라 파일 목록 데이터베이스(mlocate)에서 찾는다. 따라서 빠른 검색 속도를 제공하지만 최신의 정보가 아닐 수 있다(udatedb 작업은 크론에 등록되어 있어 매일 새벽에 자동으로 실행됨). 아래 명령어를 이용해 mlocate.db에 파일 정보를 저장한다. mlocate의 경우..
- [ 언어·프레임워크/JavaScript ][JavaScript] ESModule 사용시 발생하는 net::err_aborted 404 (not found) 에러2024-04-14 21:33:061. ESModule 사용 후 발생한 net::err_aborted 404 (not found) 에러 타입 스크립트를 사용한 프로젝트에서 ESModule을 사용해 불러오기를 하였는데 [그림 1]과 같은 에러가 발생했다. 2. 모듈의 확장자까지 작성해야 한다! 아래의 코드와 같이 app.ts 파일에 new 키워드로 클래스의 인스턴스를 생성했다. new ProjectInput(); app.ts에는 ProjectInput 클래스가 없으며 components 폴더 내 project-input.ts 파일에 클래스가 존재한다. 따라서 아래와 같이 해당 모듈을 임폴트했다. 이때 직접 작성하지는 않았고 VSCode의 "ctrl + space" 단축키를 이용해 자동 완성하였다. import { ProjectInput }..
- [ 언어·프레임워크/Spring Boot ][Spring Boot] gradle lombok Slf4j로 테스트 코드 로그 찍기2024-04-10 15:52:531. DEBUG CONSOLE에 Slf4j 로그가 찍히지 않는 문제 코딩하는 오후 채널의 "스프링 부트 : 보안"을 실습하던 중에 테스트 코드를 실행했는데 DEBUG CONSOLE에 로그가 찍히지 않는 문제가 있었다. 구글링을 통해 이 문제를 해결했고 해당 영상에 없는 내용이라 이 글을 작성하여 정리하고자 한다. 😉 코딩하는 오후 "스프링 부트 : 보안" 동영상 강의 : https://youtu.be/3CY2pk-Ug10?feature=shared 2. lombok 테스트 코드용 설정 2.1. 의존성 설정 build.gradle 파일의 의존성(dependencies)에 아래 코드를 추가해야 한다. testCompileOnly 'org.projectlombok:lombok' testAnnotationPro..
728x90
반응형