본문 바로가기
반응형

Programing154

[JavaScript] 속성(property) 값(value)으로 객체 배열을 정렬(sort)하는 방법 JavaScript에서 속성(property) 값을 기준으로 객체 배열을 정렬하는 것은 실제로 매우 쉽습니다. 이 포스트에서 우리는 자바스크립트에서 속성(property) 값을 기준으로 객체 배열을 정렬하는 방법에 대해 다룰 것입니다. JavaScript에서 속성(property) 값으로 객체 배열을 정렬하는 것은 Array.prototype.sort 메서드 덕분에 실제로 매우 간단합니다. Array.prototype.sort 배열에 있는 각 항목의 순서를 결정하기 위해 실행되는 콜백 함수를 허용하며 이것이 JavaScript에서 속성(property) 값으로 개체 배열을 정렬하는 방법을 확인하는 데 사용할 것입니다. 정렬 방법은 콜백을 제공하지 않고 배열에서 호출할 수 있습니다. 이는 알파벳순으로 정렬.. 2022. 6. 22.
[JavaScript] forEach 문 , for in 문 , for of문 목차 1. forEach 문 var arr = ["1", "2", "3"]; // ES6의 화살표 함수를 이용하면 코드를 아주 간결하게 만들 수 있습니다.(가장 자주 쓰는 형태) arr.forEach(item => { // item 변수는 배열 각각의 요소들을 순환합니다. console.log(item); }); // forEach 함수의 원형 그대로 사용하기 arr.forEach(function(item, index, arr2) { // item : 배열 각각의 요소 // index : 배열 인덱스 // arr2 : 배열 자체(반복문 돌리는 배열을 통째로 참조해야할 경우 사용) }); 2. for...in 문 for...in문은 객체의 속성을 반복하기 위해서 열거형과 함께 사용되며, EcmaScript.. 2022. 6. 16.
[JavaScript] var, let, const 차이점을 정리해보겠습니다. 자바스크립트는 진화하고 있습니다. 하나의 결과를 갖고 여러 스타일의 코딩 방법이 사용되고, 개발자의 코드 스타일이 다르기 때문에 수많은 형태의 코드를 만들 수 있습니다. var로 기본 변수를 쭉 사용해왔지만, let/const를 알게 되었을 때 잘못된 코드를 여태 쥐어짜고 있었구나 느끼게 되었습니다. var let const에 관하여 정리된 글을 기반으로 다시 정리해보겠습니다. 목차 var를 사용하여 함수 수준 변수 선언 과거에 변수 선언을 하게 되는 가장 일반적인 방법이며, var 선언한 변수는 함수 수준입니다. 즉, 선언된 위치에 함수를 그대로 두는 한 변수는 유효하지 않게 됩니다. 예를 들면 다음과 같습니다. function foo() { var a = 23; console.log(a); } foo.. 2022. 6. 15.
[javascript] console.log() 대하여 알아보자 현재 모든 자바스크립트 개발자가 가장친숙한 디비깅 툴은 무엇일까요? 아무래도 console.log가 아닐까 싶습니다. nodejs 서버개발과 프론트엔드 개발에서 디버깅 활용도가 높은 콘솔 객체에 대해서 정리해보겠습니다. 종류 console.clear() - 콘솔창 청소 브라우저 콘솔창이 지저분하다싶으면 clear()로 아주깔끔하게 지워버립니다. - 실행문 console.clear(); - 실행 결과 console.log() - 콘솔에 메시지 출력 기본 문자열을 출력합니다. object/array 같은 개체 출력도 가능합니다. - 실행문 console.log({korea: '대한민국', 'nodejs':'노트js'}); console.log(['aaa','bbb','ccc']); console.log('세.. 2022. 6. 13.
Double Commander, 더블 커맨더 - 윈도우 탐색기 대체 프로그램 Double Commander는 크로스플랫폼 오픈소스 파일 관리자입니다. 윈도우 탐색기의 대체 프로그램으로, 메모장,텍스트, 이미지 뷰어등, 파일에 관한 모든 작업을 할수있습니다. 토탈커맨드는 유료이지만, 더블커맨더는 무료로 사용이 가능하며 오랫동안 사용한 결과 이것만한 윈도우 탐색기 대체 프로그램은 없는것 같습니다. 도스시절 MDIR 같은 느낌이 팍팍나는 강추입니다. ■ 집적 사용해본 특징 키보드 방향키(화살표) 로 커서이동이 가능해서 좌/우 키로 상위 하위 폴더 이동이 가능합니다. 파일카피시는 테라카피가 기본 내장되어있습니다. 압축프로그램은 7zip이 내장되어있습니다. 텍스트 파일 뷰어와 에디터 편집또한 내장 되어있어, 윈도우 기본 메모장을 사용할 일이 없습니다. 포터블 실행도가능하다보니, 윈도우 서.. 2022. 6. 11.
Shallow copy, Deep copy 무엇인가? Shallow Copy 얕은 복사 방법은 원본과 복사된 변수 참조가 동일하게 유지되는 복사본을 만듭니다. 이는 한 곳에서 수정한 사항이 두 곳 모두에 영향을 미친다는 것을 의미합니다. 다음은 더 나은 이해를 위한 예입니다. const first_person = { name: "Jack", age: 24, } const second_person = first_person; second_person.age = 25; console.log(first_person.age); // output: 25 console.log(second_person.age); // output: 25 변경 age 속성 값 second_person개체, 변경 first_person객체의 age 속성도 마찬가지입니다. 이제 다른 예를 .. 2022. 6. 10.
우분투 20.04 MariaDB 10.5 설치 ■ MariaDB install(10.5) 설치 우분투서버의 apt repository를 이용하여 설치하는 방법에 대해서 간단히 정리를 하였으며, 설치시 Could not handshake: Error in the certificate verification. [IP: 74.120.223.18 443] 오류가 발생이 되었습니다. 인터넷 검색하다보니 정리된 글이 필요하여 아래 오류 내용을 간단히 정리하였습니다. 1. Ver 10.5 설치를 위한 사전작업(이거 안하면 그냥 기본버전인 10.3정도로 설치) sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' sudo add-apt-repository 'deb [a.. 2022. 6. 10.
Linux zip 압축하기, 압축풀기 명령어 모음 리눅스 환경에서는 Command Line으로 명령을 실행합니다. 윈도우에 익숙한 사람, 가끔씩 리눅스를 사용하는 개발자, 명령문찾아서 검색을 쉴세없이 찾아다니는 사람들과 폐쇄망에서 열심히 모바일로 서칭해보고 있는 엔지니어를 위하고 매번 까먹는 나자신을 위하여 ZIP 실행 명령문을 정리하도록하겠습니다. zip {압축 파일명}.zip {압축할 파일 혹은 디렉토리1} {압축할 파일 혹은 디렉토리2}... ■ zip 옵션 -f freshen: only changed files -u update: only changed or new files -d delete entries in zipfile -m move into zipfile (delete OS files) -r recurse into directories .. 2022. 6. 9.
CLI(Command Line Interface)란? 명령 줄 인터페이스(CLI, Command line interface) 또는 명령어 인터페이스 는 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다. 즉, 작업 명령은 사용자가 컴퓨터 키보드 등을 통해 문자열의 형태로 입력하며, 컴퓨터로부터의 출력 역시 문자열의 형태로 주어진다. ( - 위키백과 - ) 2022. 6. 8.
"All Rights Reserved" 라이선스를 package.json에 추가하는 방법 package.json에 "All Rights Reserved" 라이센스를 추가를 통해 개인 패키지 또는 공개되지 않은 패키지를 사용할 수 있는 권한 부여를 거부할 수 있습니다. { "license": "UNLICENSED" } 결론 package.json에 "All Rights Reserved" 라이센스를 추가합니다. { "license": "UNLICENSED" } 2022. 6. 8.
uglify option --output, -o // 출력결과를 파일로 저장하기 --compress, -c // 압축하기 --parse, -p // 파싱을 수행함 --mangle, -m // Mangle을 수행함; (Mangle v. 짓이기다, 훼손하다) --beautify, -b // Beautify를 수행함 --timings // 런타임 시간을 반환 --version // 현재 버전 출력하기 --output // quote_style => 0 - auto 1 - single 2 - double 3 - original 2022. 6. 8.
Linux에서 Systemd 서비스를 만드는 방법 때때로 스크립트를 만든 다음 systemd에서 스크립트를 제어하도록 하거나 어떤 경우에는 스크립트가 어떤 이유로 종료될 때 스크립트가 스스로 다시 시작되기를 원할 수 있습니다. 이러한 경우 Linux의 systemd는 관리할 수 있는 서비스를 구성하는 데 도움이 됩니다. 이렇게 하려면 다음 단계를 따르십시오. cd /etc/systemd/system your-service.service라는 파일을 만들고 다음을 포함합니다. 새 서비스를 포함하려면 서비스 파일을 다시 로드하십시오. [Unit] Description= [Service] User= WorkingDirectory= ExecStart= Restart=always [Install] WantedBy=multi-user.target 가상 환경을 포함하.. 2022. 6. 4.
TDD의 이유 많은 사람들이 테스트 주도 개발(TDD)로 잘못된 시작을 합니다. 내가 사람들과 그것을 논의할 때 많은 사람들이 방법, 특히 그 뒤에 숨겨진 동기에 대해 약간의 오해를 가지고 있습니다. 개발자가 TDD를 사용해야 하는 이유를 더 잘 이해하고 있다면 TDD를 더 효과적으로 연습하고 더 많은 가치를 얻을 수 있는 더 나은 기회를 갖게 될 것이라고 믿습니다. 이 게시물은 TDD를 사용하는 이유를 살펴보고 TDD를 보다 효과적으로 실행하는 방법에 대한 몇 가지 지침을 제공합니다. 저는 싱가포르에서 열리는 바둑 프로그래밍 애호가들을 위한 모임인 GoSG에서 이 주제에 대해 이야기하도록 초대받았습니다. YouTube에서 녹음을 찾을 수 있습니다 . GOOS(Growing Object-Oriented Software.. 2022. 6. 3.
Node.js 파일 시스템 API - 초보자를 위한 가이드 파일 시스템 API 파일 시스템 액세스, 파일 관리 및 편집은 아마도 서버 측에서 수행되는 가장 중요한 작업 중 하나일 것입니다. 따라서 Node.js는 이러한 기능을 제공하는 것으로 간주됩니다. 이는 방대한 수의 메서드와 속성을 포함하는 FS(파일 시스템) API의 형태로 수행됩니다. 이 API의 일상적인 사용은 일반적으로 파일을 읽고 쓰는 것으로 제한되지만 아직 발견할 것이 훨씬 더 많습니다. 비동기 특성 파일에 대해 수행되는 작업은 시간이 걸릴 수 있습니다. JS 단일 스레드 특성을 사용하면 FS API가 asynchronicity 합니다. 따라서 읽기 및 쓰기와 관련된 모든 메서드에는 비동기 및 동기 버전이 있습니다. 이러한 경우에는 비동기가 확실히 더 나은 솔루션이므로 적절한 -Sync 접미사가.. 2022. 6. 2.
postgresql source compile 작성중 wget https://ftp.postgresql.org/pub/source/v13.7/postgresql-13.7.tar.gz tar -zxvf postgresql-13.7.tar.gz cd postgresql-13.7 ■ 사전 설치 패키지 설치 apt-get update sudo apt-get install zlib1g-dev sudo apt install build-essential zlib1g-dev libreadline-dev -y sudo apt-get upgrade python3 sudo apt-get install -y python-dev sudo apt-get install -y python3-dev sudo apt-get install -y libsystemd-dev 출처: ht.. 2022. 5. 30.
Storybook을 다양한 Addon과 함께 활용해보면서 사용법 정복하기 Storybook을 다양한 Addon과 함께 활용해보면서 사용법 정복하기 https://velog.io/@velopert/start-storybook Storybook을 다양한 Addon과 함께 활용해보면서 사용법 정복하기 Storybook의 기본적인 사용법을 알아보고, 또 다양한 Addons 들을 활용하는 방법을 알아봅시다. velog.io 2021. 7. 23.
TDD란? 어떻게 해야 되는것일까요? TDD란? 어떻게 해야 되는것일까요? 2021. 5. 10.
[Mysql] 다음 auto_increment 값 받아오기 query를 사용하다보면 insert시 다음 auto_increment 값이 필요할 때가 있다. select LAST_INSERT_ID() 를 사용할 수도 있지만, LAST_INSERT_ID()는 table을 선택할 수 없다. 그래서 아래의 query를 사용하면 다음 auto_increment의 값을 얻을 수 있다. SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'table name' AND table_schema = DATABASE( ) ; 출처: https://wkdgusdn3.tistory.com/entry/데이터베이스-다음-autoincrement-값-받아오기 [장삼의 착한코딩] 2020. 12. 15.
지겹다. 반복적인 오류, 좀 벗어나고싶다. 2020. 12. 10.
logrotate를 사용하여 tomcat catalina.out 로그 파일 짜르기 logrotate를 사용하여 tomcat catalina.out 로그 파일 짜르기 설치 yum install logrotate logrotate 경로 /etc/logrotate.d tomcat logrotate 파일 생성 vi tomcat /home/tomcat/logs/catalina.out { copytruncate daily rotate 30 missingok notifempty dateext } 바로 적용시키기 logrotate -f /etc/logrotate.conf 2020. 4. 18.
리눅스 Centos 7 부팅시 명령어 자동실행 방법 리눅스 Centos 7 부팅시 명령어 자동실행 방법 자동으로 실행되게 하려면 '/etc/rc.d/rc.local' 파일을 이용하면 됩니다. 1. rc.local 실행권한 허용 chmod +x /etc/rc.d/rc.local 2. 실행스크립트 추가 vi /etc/rc.d/rc.local 3. 상태 확인 systemctl status rc-local.service 4. 실행 systemctl start rc-local.service 5. 리부팅되어도 실행되게 서비스설정 enable 처리 vi /usr/lib/systemd/system/rc-local.service -> 아래내용 추가 [Install] WantedBy=multi-user.target 6. 서비스 활성 systemctl enable rc-lo.. 2020. 4. 18.
linux, 각 디렉토리별 용량을 확인하기 linux, 각 디렉터리 별 용량을 확인하기 du -h --max-depth=1 2020. 3. 20.
Windows에서 tail명령어 사용하기 Windows에서 tail명령어 사용하기 Powershell에서, Get-Content "파일명" -Wait -Tail 10 2020. 3. 16.
Tortoise SVN, 계정 캐쉬 삭제 Tortoise SVN, 계정 캐쉬 삭제 계정 캐쉬 파일 경로 C:\Users\XXXXXXX\AppData\Roaming\Subversion\auth 2020. 1. 3.
Spring framework MVC 패턴 Spring framework MVC를 사용하여 웹개발을 진행하면서, Package/Class 구조를 어떻게 구성해야 많은 고민을 하게 된다. 그동안 web을 개발하면서 느끼는것은 정답은 없으며 어떻게 만들든지 결과만 잘나오면 된다. 코드를 이쁘장하게 해도 결과물이 이쁘지 않으면 오류이다. 개발은 경험이 중요하듯, 그동안 개발해왔던 패턴을 정리하기로 하였다. 아래 내용은 멍멍돌이야 기준이며 MVC패턴에 맞게 Class layer단위 규칙을 정의한 것인다. 1. Package 분리 - 업무(URL)단위별 패키지 정리 업무 단위로 패키지를 분리할경우, URL단위로 소스들이 나뉘기 때문에 찾기가 편리하다. 그러나 업무단위가 너무 많을 경우 패키지가 많아지게 된다. 기본적으로 MVC 패턴을 사용할때, bean/.. 2019. 12. 31.
java short - UUID 생성 java short-UUID생성 public static String makeShortUUID() { UUID uuid = UUID.randomUUID(); long l = ByteBuffer.wrap(uuid.toString().getBytes()).getLong(); String str = Long.toString(l, Character.MAX_RADIX); return str; } 2019. 12. 26.
java UUID생성 java UUID생성 public static String makeUUID() { String str = UUID.randomUUID().toString().replace("-", ""); return str; } 2019. 12. 26.
java hostname 추출 public static String getLocalHostName(){ String hostname = System.getenv("HOSTNAME"); if(hostname != null) { return hostname; } String lineStr = ""; try { Process process = Runtime.getRuntime().exec("hostname"); BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); while((lineStr = br.readLine()) != null ){ hostname = lineStr; } }catch (IOException e) { e.print.. 2019. 12. 19.
java local IP 가져오기 public static String getLocalHostAddress(){ String ip = null; try( final DatagramSocket socket = new DatagramSocket()){ socket.connect(InetAddress.getByName("9.9.9.9"), 0); ip = socket.getLocalAddress().getHostAddress(); } catch (Exception e){ e.printStackTrace(); } return ip; } 2019. 12. 19.
linux port open 확인 * IP에 대해 SYN 스캔을 한다. 타 서버에서 대상 서버에 포트가 열렸는지 체크한다. 자신서버에서 자신을 체크하면 당연히 열렸다고 나옴.... [root@]# nmap -sS 192.168.0.180 Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2010-12-07 17:32 KST Interesting ports on 150.23.27.180: Not shown: 1670 filtered ports PORT STATE SERVICE 21/tcp open ftp 23/tcp open telnet 161/tcp closed snmp 162/tcp closed snmptrap 543/tcp closed klogin 544/tcp closed kshel.. 2010. 12. 7.
반응형