분류 전체보기
[JavaScript] radio버튼 이벤트리스너 예제(eventLitner)
[JavaScript] radio버튼 이벤트리스너 예제(eventLitner)
2023.02.08jQuery만 사용하다가 순수 자바스크립트를 사용해보려니 익숙하지가 않네요. 스스로 기억하기 위해 기록해 봅니다. none flex inline-flex inline-flexbox // radio.js window.onload = function(){ const radios = document.querySelectorAll("input[name='like']"); const txt = document.querySelector("#txt"); radios.forEach((radio) => { radio.addEventListener("change", (e) => { const current = e.currentTarget; if(current.checked){ txt.textContent = `좋아하는 음..
jsFiddle + 티스토리 연동하기
jsFiddle + 티스토리 연동하기
2023.01.27@ jsFiddle란? jsFiddle은 프론트엔드인 html, css, javascript 를 작성하여 빠르게 결과를 확인할 수 있고, 이를 테스트 및 공유할 수 있는 서비스를 제공합니다. jsFiddle 바로가기 - jsfiddle.net 사이트를 들어가면 위와 같이 검은 화면을 볼 수 있습니다. html, css, javascript를 작성 할 수 있고, 우측 하단을 통해 결과를 바로 확인할 수 있습니다. 회원가입 시 아이디/이메일/비밀번호만 물어봅니다. 간단하게 가입했습니다. @ jsFiddle + 티스토리 연동하기 간단한 소스 만들어봤습니다. HTML : 버튼 하나를 만들었고 CSS : 글자색을 빨간색으로 지정했습니다. Javascript : 버튼을 클릭하면 "클릭하였습니다." 메시지를 출력했습..
22년도 개발자 회고록
22년도 개발자 회고록
2023.01.02@ 프로젝트 웹상에 진행된 프로젝트를 기입하기를 다소 불편하여 일일이 적지는 못하겠지만, 한 해를 나름 결산을 해보도록 하겠다. 내가 속한 파트에서 진행된 프로젝트를 1년 쭉 나열을 해보았다. 6월 말로 론칭하였던 관리자 페이지 리뉴얼을 기점으로, 1월 ~ 6월까지는 정말 정신없는 야근과 함께 바쁨의 연속으로 보냈고, 이를 보상이라도 하듯, 7~12월까지는 다소 여유로운 일정을 보내게 되었다. 잘한 점 마감일을 대체적으로 잘 지켰다. 정신없었던 반분기, 다소 여유롭였던 반분기 모두 마감일 하나는 칼 같이 지켜낸 듯하다. 없는 일 억지로 잘 만들어서 진행했다. 이번 연도처럼 반분기가 널널했던 적이 없었던 것 같다. 연말에서는 자포자기하면서 일을 만들지 않았지만, 대체적으로 너무 쉬지 않게 적당히 파트원들 ..
MariaDB 다중 소스 복제(Multi-Source Replication) 구축 및 명령어
MariaDB 다중 소스 복제(Multi-Source Replication) 구축 및 명령어
2022.11.29이번 포스팅에서 구현해볼 관계도는 다중 소스 복제(multi-source replication)입니다. 제가 다중소스복제가 필요한 상황은 아래와 같습니다. 마스터, 슬레이브1, 슬레이브2, 슬레이브n 은 DB부하 분산을 위해 사용됩니다. 슬레이브1에는 마스터에 있는 테이블 중 분석에 필요한 테이블이 존재합니다. 분석에 필요한 데이터는 용량이 크며, 다른 서비스에서는 필요 없습니다. 특정한 부가 서비스에만 분석에 필요한 데이터가 필요합니다. 분석 프로그램 사용 시 마스터에 있는 정보도 필요한 상황입니다. 좀 모호 할 수도 있는 말이지만, 저는 마스터의 데이터와, 분석에서만 사용되는 데이터를 합쳐 놓은 DB가 필요한 상황입니다. 이때 적절한 리플리케이션 관계도가 다중 소스 복제라고 판단하였습니다. 다중 소스..
Mariadb 리플리케이션(Replication) 은 어떻게 동작하는 걸까?
Mariadb 리플리케이션(Replication) 은 어떻게 동작하는 걸까?
2022.11.252022.11.22 - [개발/MariaDB] - MariaDB 리플리케이션(Replication) 이해 및 구축(Rocky Linux) 지난 포스팅에서 아래와 같은 부분을 살펴봤습니다. 리플리케이션이 필요한 이유 리플리케이션 구축 방법 리플리케이션 동작 원리 리플리케이션 동작원리에 대해 설명이 좀 부탁하다 생각 들어 내용을 좀 더 보강해보려 합니다. [그림 1] 은 리플리케이션 동작의 흐름을 도표로 표현한 것입니다. 예시로 마스터의 데이터베이스에 row 한 개를 inset 했다고 가정하고 흐름을 이야기해볼까 합니다. Binary Log 바이너리 로그 또는 빈로그(bin Log)라고 불립니다. 마스터의 데이터베이스에 데이터 또는 스키마가 변경되는 이벤트를 저장하는 공간입니다. 데이터베이스에 row 한 개..
MariaDB 리플리케이션(Replication) 이해 및 구축(Rocky Linux)
MariaDB 리플리케이션(Replication) 이해 및 구축(Rocky Linux)
2022.11.22이번 시간에는 리플레이케이션 개념에 대해 알아보고, 구축 방법에 대해 기술하고자 합니다. 리플리케이션의 목적 DB 서버가 한대 있다고 가정해 봅시다. 사이트의 이용자가 많아져서 DB의 트랜잭션이 많아졌고, 결국 DB의 부하로 인하여 사이트가 느려지고 있습니다. 이럴 때 어떻게 해야 할까요? 이때 사용되는 기법 중 하나가 DB의 리플리케이션을 구축하는 것입니다. 서버를 다수개를 이용하여 각 서버에 DB를 설치합니다. Master DB에 데이터를 insert, update, delete 등을 수행하면 Slave DB들에 자동으로 동일한 명령어를 실행시켜 데이터를 동일하게 만듭니다. (Master DB에만 insert 등을 실행해야 합니다.) 웹서버에서는 Master DB에만 inset, update, del..
[Javascript] 구조 분해 할당 (Destructuring Assignment)
[Javascript] 구조 분해 할당 (Destructuring Assignment)
2022.11.21리액트를 학습할 때 생소한 구문으로 난항을 겪은 적이 있습니다. 해당 구문이 구조분해할당 이라는 이름조차도 어려워 보이는 녀석이었습니다. 간략하게 구조분해할당에 대해 기술하고자 합니다. 배열에서의 구조분해할당(Destructuring Assignment) let arr = [10, 20, 30, 40, 50] let a, b, c; a = arr[0]; b = arr[1]; c = arr[3] console.log(a);// 10 console.log(b);// 20 console.log(c);// 40 [10, 20, 30, 40, 50] 배열이 있습니다. 첫번째값을 a 변수에 할당하고 두 번째 값을 b 변수에 할당하여 세 번째는 건너뛰고, 네 번째 값을 c변수에 할당하여 a, b,c 를 출력하였습니다..
컴포저(Composer)란? - 윈도우 버전 설치하기
컴포저(Composer)란? - 윈도우 버전 설치하기
2022.11.05컴포저(composer)란? 설치하기 앞서 컴포저는 무엇인지 간단하게 알아보겠습니다. 컴포저란 PHP 의존성 관리 도구입니다. 말이 좀 어려운데 예를 들어보겠습니다. 프로젝트를 진행하는데, 외부 라이브러리 A가 필요한 상황입니다. 예전에는, A 라이브러리를 다운로드 받아서 압축을 풀고, 나의 프로젝트에 복사해 놓죠. 그리고 A 라이브러리를 사용합니다. 시간이 지나 A라는 라이브러리가 업데이트가 되었다는 사실을 알게 되었고, 난 또 다시 다운로드하고 -> 압출 풀고 -> 복사하고 등의 과정을 진행하죠. 여기에서의 문제는 A라는 라이브러리를 설치하기 위해 나의 환경에 맞는 버전을 찾아야 하는 수고를 해야 합니다. 열심히 찾았더니, A를 설치기 하기 위해 B, C, D 라이브러리가 필요하다고 합니다. 열심히 ..
xampp 설치하기 (etc. php 다른 버전 2개 운영하려면.)
xampp 설치하기 (etc. php 다른 버전 2개 운영하려면.)
2022.11.05XAMPP 란? PHP를 개발하기 위해서는 기본적으로 설치해야 할 프로그램들이 있습니다. php 웹서버 (아파치 or nginx) 데이터베이스 (mariadb, mysql 등) 데이터베이스 툴(phpMyAdmin 등) 이런 프로그램을 하나하나 따로 설치하고 연동시키고 하는 것은 복잡하고 귀찮은 일이입니다. xampp는 PHP 개발환경에 필요한 툴들을 묶어서 한번에 설치하고 연동시켜 주는 프로그램입니다. 정식 사이트를 보면 7.4.30 버전을 다운로드 받으면 Apache 2.4.54 가 포함되어있고, DB, PHP, 등 해당 버전 포함되어있다라고 알려주고 있습니다. XAMPP 다운로드 https://www.apachefriends.org/download.html 위의 사이트에서 자신에 맞는 것을 다운로드하..
PHP 버전별 히스토리 (etc. 업그레이드 계획)
PHP 버전별 히스토리 (etc. 업그레이드 계획)
2022.11.03PHP 5.6.0 2014년 8월 28일 발표 PHP 7.0 2015년 12월 1일 공개 파서 재작성으로 성능 향상 - PHP 5.6 보다 두배 이상 빠른 속도 변수 최적화로 메모리 사용률이 상당히 감소 PHP 5.6 대비(1/5)로 감소 추상 구문 트리(Abstract Syntax Tree) 일관된 64비트 지원(Consistent 64-bit support) 향상된 예외 상속(Improved Exception hierarchy) 많은 치명적 에러들이 예외로 전환됨 보안 난수 발생기(Secure random number generator) 오래됐거나 지원하지 않는 SAPI와 확장 지원 중단 Null 병법 연산자(The null coalescing operator (??)) 함수에 리턴 타입 정의, 매개..
[Javascript] null과 undefined 차이
[Javascript] null과 undefined 차이
2022.11.02현재 운영 중인 사이트에서 아래와 같은 문법을 보게 되었습니다. if(name != null && name != undefined){ // 구문 } 'name이라는 변수에 값이 없으면 구문을 실행해라'라는 말은 알겠는데, 굳이 null과 undefined 둘다 조건을 걸 필요가 있을까요? 우선 null과 undefined는 무엇을 의할까요? null과 undefined의 차이 let test_null = null; let test_undefined; console.log(typeof test_null); // object console.log(test_null); // null console.log(typeof test_undefined); // undefined console.log(test_undef..
XMPP mariadb 데이터 초기화 하는 방법
XMPP mariadb 데이터 초기화 하는 방법
2022.10.28xmpp 7.4.30 버전을 설치하였습니다. 구성 내용은 아래와 같습니다. PHP 7.4 MariaDB 10.4 root 패스워드 설정하다가 무엇을 잘못 만졌는지 mysql servie도 살아나지도 않는 상황이었습니다. 혹시나 해서 C:\xampp\mysql\data 폴더도 삭제하고 서비스 시작을 해도 살아나지 않네요. 무심코 backup 폴더를 보게 되었고, 해당 폴더를 복사하니 데이터 초기화되면서 서비스 살아났습니다. (개이득) 결론 C:\xampp\mysql\data 내용 모두 삭제 C:\xampp\mysql\backup 복사하여 카피 서비스 시작 당연히 기존 데이터는 다 날라가는거죠. (저야 처음 설치하자마자 문제 됐던 거라서 상관없었고요) 필요하신 분은 참고하세요~