목차 조건에 따라 배열의 요소를 필터링하기 조건에 따라 배열의 각 요소에 대한 작업 수행하기 `filter()` 함수 사용하기 Python에서 배열(리스트) 내의 요소에 대해 조건문을 사용하는 방법에는 여러 가지가 있습니다. 조건문은 특정 조건을 충족하는 요소를 필터링하거나, 배열의 요소에 대한 특정 작업을 수행하는 데 사용될 수 있습니다. 아래에 몇 가지 일반적인 사용 방법을 설명하겠습니다. 조건에 따라 배열의 요소를 필터링하기 리스트 컴프리헨션을 사용하여 특정 조건을 만족하는 요소만을 포함하는 새로운 리스트를 생성할 수 있습니다. numbers = [1, 2, 3, 4, 5, 6] # 짝수만 필터링 even_numbers = [num for num in numbers if num % 2 == 0] ..
목차 파이썬 다중배열 마지막 배열 접근 파이썬 다중배열 마지막 배열 접근 Python에서 다중 배열(이중 배열 또는 2차원 배열)의 마지막 배열 안에서 특정 필드(요소)를 가져오려면, 먼저 마지막 배열에 접근한 후 원하는 필드를 선택하면 됩니다. 다음은 이를 수행하는 방법을 설명하는 예시입니다. 가정으로, 각 하위 배열은 여러 필드(요소)를 포함하고 있고, 특정 필드의 인덱스가 주어진다고 가정합니다. 예를 들어, 다음과 같은 다중 배열이 있고, 각 하위 배열의 두 번째 필드를 가져오려 한다고 가정해 보겠습니다: multi_array = [[1, 'a', True], [2, 'b', False], [3, 'c', True]] 이 배열에서 마지막 배열(`[3, 'c', True]`)의 두 번째 필드(`'c..
목차 pymysql로 LIKE 문 쓰기 `PyMySQL`을 사용하여 `LIKE` 조건문을 포함하는 `SELECT` 쿼리를 실행하는 방법을 보여드리겠습니다. `LIKE` 조건문은 특정 패턴이나 부분 문자열이 포함된 행을 찾을 때 사용됩니다. 예를 들어, 특정 키워드를 포함하는 항목을 찾기 위해 이를 사용할 수 있습니다. pymysql로 LIKE 문 쓰기 아래 예시에서는 `good_keyword` 테이블에서 'keyword' 컬럼이 특정 패턴을 포함하는 행을 검색하는 방법을 보여줍니다. import pymysql # 데이터베이스 연결 정보 host = 'localhost' user = 'your_username' password = 'your_password' db = 'your_database' # 연결..
목차 클라이언트 사이드 (JavaScript) 서버 사이드 (Flask) 주의 사항 Flask에서 AJAX를 통해 배열 데이터를 받는 과정은 다음과 같습니다: 1. 클라이언트 사이드 (JavaScript): AJAX 요청을 통해 서버로 데이터를 전송합니다. 2. 서버 사이드 (Flask): 전송받은 데이터를 처리합니다. 클라이언트 사이드 (JavaScript) AJAX 요청을 생성하여 배열 데이터를 JSON 형식으로 전송하는 예시입니다. 여기서는 jQuery의 `$.ajax` 메서드를 사용합니다. // JavaScript 예시 $(document).ready(function() { var dataArray = [1, 2, 3, 4, 5]; // 전송할 배열 데이터 $.ajax({ url: '/your-..
목차 PyMysql로 Paging 쿼리 `PyMySQL`을 사용하여 MySQL 데이터베이스에서 페이징(Paging) 처리를 하는 쿼리를 작성할 때, `LIMIT`와 `OFFSET` 절을 사용합니다. 페이징 처리는 대량의 데이터를 페이지 단위로 나누어서 처리할 때 유용합니다. 각 페이지에 특정 수의 레코드만을 표시하며, 사용자가 다음 또는 이전 페이지로 이동할 수 있도록 합니다. PyMysql로 Paging 쿼리 다음은 특정 조건을 만족하는 레코드를 페이지 단위로 가져오는 쿼리의 예시입니다: import pymysql # 데이터베이스 연결 정보 host = 'localhost' user = 'your_username' password = 'your_password' db = 'your_database' ..
목차 자바스크립트 변환 함수 자바스크립트 변환 방법 자바스크립트 변환 함수 JavaScript에서 텍스트(문자열)를 숫자로 변환하는 것은 매우 간단합니다. 주로 사용되는 두 가지 방법은 `parseInt()` 함수와 `parseFloat()` 함수입니다. `parseInt()`는 문자열을 정수로 변환하고, `parseFloat()`은 문자열을 부동소수점 숫자로 변환합니다. 자바스크립트 변환 방법 아래는 두 함수를 사용하는 예시 코드입니다: // 텍스트를 정수로 변환 let textToInt = "123"; let numberInt = parseInt(textToInt); console.log(numberInt); // 출력: 123 // 텍스트를 부동소수점 숫자로 변환 let textToFloat = ..
목차 모듈 IMPORT 예시코드 작성 진행 `PyMySQL`을 사용하여 시간 데이터를 MySQL 데이터베이스에 저장하는 것은 기본적으로 다른 데이터 유형을 저장하는 것과 유사합니다. MySQL에는 시간과 관련된 여러 데이터 유형이 있으며, 대표적으로 `DATE`, `TIME`, `DATETIME`, `TIMESTAMP` 등이 있습니다. 이들 중 어떤 유형을 사용할지는 저장하려는 시간 데이터의 특성에 따라 달라집니다. 모듈 IMPORT 아래 예시에서는 Python의 `datetime` 모듈을 사용하여 현재 날짜와 시간을 `DATETIME` 유형으로 데이터베이스에 저장하는 방법을 보여줍니다. 먼저 필요한 모듈을 임포트합니다: import pymysql import datetime 예시코드 작성 진행 다음은..
목차 HTML jQuery & JavaScript 파이썬 다중배열 마지막 배열 접근 jQuery와 JavaScript를 사용하여 텍스트 파일을 입력 받으면 해당 파일의 내용을 `textarea`에 추가하는 로직은 다음과 같습니다: 1. 파일 입력 요소()를 사용하여 사용자로부터 텍스트 파일을 받습니다. 2. JavaScript의 FileReader API를 사용하여 파일 내용을 읽습니다. 3. 읽은 텍스트를 `textarea`에 추가합니다. HTML jQuery & JavaScript $(document).ready(function() { $('#fileInput').on('change', function(event) { var file = event.target.files[0]; if (file &&..
목차 파이썬 pymsql 설치 파이썬 리스트 데이터 저장 예시 코드 파이썬 pymsql 설치 Python에서 `PyMySQL` 라이브러리를 사용하여 리스트 데이터를 데이터베이스에 저장하는 로직을 작성하려면 몇 가지 단계를 거쳐야 합니다. 여기서는 간단한 예시를 들어 설명하겠습니다. 예를 들어, 각 요소가 `(name, age)` 형태의 튜플로 이루어진 리스트를 데이터베이스의 `users` 테이블에 저장한다고 가정하겠습니다. 먼저, PyMySQL을 설치해야 합니다. 이는 보통 다음 명령어로 수행할 수 있습니다: pip install pymysql 이후 다음과 같은 절차를 따릅니다: 1. 데이터베이스 연결 설정 2. 데이터베이스에 연결 3. 커서 객체 생성 4. SQL 쿼리 작성 및 실행 5. 변경 사항 ..
목차 공백 제거하기 특정 문자 제거하기 JavaScript에서 문자열에서 공백이나 특정 문자를 제거하려면 주로 `replace()` 메서드를 사용합니다. 이 메서드는 문자열에서 패턴에 해당하는 부분을 다른 문자열로 대체할 수 있습니다. 정규 표현식을 사용하면 더욱 유연하게 문자를 제거할 수 있습니다. 공백 제거하기 1. 모든 공백 제거: let str = "Hello World!"; str = str.replace(/\s+/g, ''); console.log(str); // "HelloWorld!" 여기서 `\s+`는 하나 이상의 모든 공백을 의미하고, `g` 플래그는 전역 검색을 의미합니다. 2. 문자열 앞/뒤의 공백 제거 (trim): let str = "Hello World!"; str = str..
JavaScript에서 배열에 요소를 추가하는 가장 일반적인 방법은 push() 메서드를 사용하는 것입니다. 이 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 변경된 배열의 새 길이를 반환합니다. 아래는 push() 메서드를 사용하여 배열에 요소를 추가하는 예시입니다: // 배열 선언 let fruits = ["apple", "banana", "orange"]; // 배열에 새 요소 추가 fruits.push("grape"); // 결과 확인 console.log(fruits); // ["apple", "banana", "orange", "grape"] 또 다른 방법으로, concat() 메서드를 사용하여 기존 배열을 변경하지 않고 새 요소를 포함한 새 배열을 생성할 수도 있습니다. concat()..
JQuery를 사용하여 특정 클래스를 가진 tr 요소의 각 td 텍스트를 가져오는 방법은 비교적 간단합니다. 아래는 예시 코드입니다. 이 코드는 특정 클래스(your-class)를 가진 모든 tr 요소를 찾고, 각 tr 내의 td 요소들을 순회하면서 그 텍스트를 콘솔에 출력합니다. // 특정 클래스를 가진 모든 tr 요소들을 순회합니다. $('tr.your-class').each(function() { // 현재 tr 요소 내의 모든 td 요소들을 순회합니다. $(this).find('td').each(function() { // 각 td 요소의 텍스트를 가져와서 콘솔에 출력합니다. var text = $(this).text(); console.log(text); }); }); 이 코드에서 your-cl..
요즘 새로운 언어인 코틀린과 안드로이드 스튜디오를 다루는데 정신없습니다. 저는 원래 웹 프로그래밍을 전문으로 공부하였지만 React Native를 다루고나서 모바일 앱쪽에 관심이 생기게 되더라고요. 안드로이드 스튜디오를 사용하다보니 폰트가 마음에 들지 않았습니다. 이번 포스팅에서는 맥에서 안드로이드 스튜디오 폰트 바꾸는 방법에 대해서 알아보겠습니다. 먼저 안드로이드 스튜디오에 들어가 위쪽에 [Android Studio]를 클릭해주세요! 클릭하면 [Preference]라는 메뉴가 있을것입니다. 이것을 클릭해주세요. [Prefernece] 창에서 왼쪽 상단에 보면 검색창이 있습니다. 이곳에 "font'라고 검색해주거나 왼쪽 메뉴탭에서 [Editor - Font] 메뉴에 들어가주세요 그러면 위쪽같은 창이 나올..
최근 프로젝트를 진행하면서 정렬할 일들이 많아졌다. 본인은 프론트엔드를 기본적으로 다루는데는 괜찮았지만 세부적인 사항들(배치나 상세한 애니메이션)등에 어려움을 겪었다. 요소에 따라서 배치 방법이 달라지는 것도 어려움에 한몫을 했다. 본인은 주로 bootstrap css 라이브러리를 사용하는데 이번 포스팅에서는 bootstrap 버튼 정렬을 알아볼 것이다 # 오른쪽 정렬 제출하기 float-right 클래스를 부모 요소에 추가하면 된다 # 왼쪽 정렬 제출하기 마찬가지로 float-left 클래스를 부모 요소에 추가시켜주면 된다
안녕하세요 엘빈입니다. 정말 firebase 인증 시스템은 간단하면서도 복잡합니다. 이메일 인증을 구현하기 위해 하루종일 고민하고 겨우 해결했습니다. firebase는 다 좋은데 한글 가이드 문서가 너무 부족합니다. 하다 못해 영어 문서도 자세히 알려주었으면 하는데 많지 않더라고요. 아마 출시된지 얼마 안된 클라우드 서비스라거 그런것 같습니다. 이번 포스팅에서는 node.js와 firebase를 이용하여 이메일 인증하는 방법을 요약해 보겠습니다. Email 인증 회원가입 시스템 이메일 인증 시스템에 대해 모든 소스 코드를 보여주는 것이 아닌 흐름이나 방향을 포스팅하려고 합니다. 개발 문서에 소스 코드들은 자세히 나와있으니 참고하시면서 개발해주시기 바랍니다! 먼저 저 같은 경우 로그인 구현을 크게 sns와..
안녕하세요 엘빈입니다. 메뉴를 표시하는 네비게이션 바를 작업하던 중 글자에만 링크로 이동되어 전체 영역으로 a 태그 링크 범위를 확대하고 싶었는데요. 검색을 활용하여 방법을 찾아 포스팅으로 정리합니다. 정말 간단합니다. css style 하나만 지정해주면 되죠. 이렇게 빨간 부분 전체를 클릭해도 이동하게끔 만들고 싶었는데 글씨 부분을 눌러야 이동이 가능해지는 현상입니다. 이는 기본적인 a 태그의 범위가 작기 때문인데요. 영역을 넓히기 위해서는 css 속성을 설정해야 합니다. .res-menu-box{ display: block;} 이처럼 display:block 속성을 지정하고 a 태그안에 class 속성값으로 집어넣어줬습니다. 이 현상은 대체로 메뉴를 만드는 경우 li 태그 안에 a 태그를 삽입할 때 ..
안녕하세요 엘빈입니다. 최근 풀스택으로 웹개발을 진행하고 있으면서 프론트엔드 부분도 열심히 공부하게 되는 것 같습니다. 처음에는 백엔드만 공부를 했는데 프론트 엔드의 태그들이나 문법들도 정말 좋은 것들이 많더군요. select 태그 또한 프론트엔드 개발을 시작하면서 알게 되었습니다. 사실 그동안 프론트 부분은 오픈 소스를 가지고 왔기 때문에 볼 일이 없었죠. 이번 포스팅에서는 한 select 태그를 선택하면 다른 select 태그의 옵션들이 보이도록 하는 방법에 대해서 정리해보겠습니다. select 알아보기 select는 기본적으로 아래 코드와 같이 작성합니다. 도/특별시 선택 주소를 선택하세요 서울 경기도 충청남도 주소 소분류 선택해주세요. 먼저 저는 bootstrap을 css library로 즐겨 사..
안녕하세요 엘빈입니다. node.js를 사용하여 웹개발을 진행하다 보면 사실 html 파일을 이용하는 경우가 드뭅니다. html 웹문서는 웹개발에 가벼운 문서로 유명하지만 정적인 페이지로 서버를 이용하는 웹개발에서는 변형에 한계가 있기 때문입니다. node.js에서는 동적인 페이지 개발을 위해 뷰엔진 모듈을 사용하도록 권고하는데 저같은 경우 ejs 모듈을 사용하고 있습니다. 이번 포스팅에서는 ejs 뷰엔진을 통해 공통 레이아웃 적용 방법에 대해서 알아보겠습니다. ejs 모듈로 공통 레이아웃 적용하기 사실 ejs 모듈을 정식적으로 배운것은 아니고 인터넷에서 검색 도중 알게되어 사용하게 되었습니다. 그러다보니 지금까지 유용한 모듈화 기능을 활용하지 못하다가 최근에 알게되어 사용하게 되었고 대단히 편리한 기능..
안녕하세요 엘빈입니다. 요즘 웹개발 프로젝트를 열심히 진행중에 있습니다. 예전에도 firebase를 이용해서 웹개발 프로젝트를 진행하였는데 가장 애를 먹었던 부분이 로그인 구현이였습니다. 원래 firebase는 인증 모듈을 기본적으로 제공해주고 있지만 이 인증 모듈의 DOC 문서가 대부분 안드로이드 아니면 웹 프론트에서 작동하는 방식 위주로 설명해주고 있기 때문에 조금 node.js 서버를 두는 당시 프로젝트 상황상 어려운 부분이 많았죠. 게다가 node.js를 공부한 후 첫 웹 개발 프로젝트였기 때문에 어려움이 더했던 것 같습니다. 이번 포스팅에서는 node.js와 firebase를 이용해 구글 로그인을 구현하려고 합니다. 프론트 엔드 설정값 일단 홈 화면 사이드에다가 로그인을 구현했는데 UI를 Boo..
firebase에서 이미지, 오디오 영상을 저장하는 공간을 firebase storage라고 한다. 메인 저장소인 firestore는 용량이 큰 파일을 저장하지 못하기 때문에 대부분 참조를 통해 storage에 파일을 참조 링크를 firestore DB에 저장한다. 이번 포스팅에서는 firebase storage의 저장 방법에 대해서 정리해보려고 한다. firestore에 데이터 저장하기 123firebase.initializeApp(firebaseConfig); // firebase 키값을 넣으면서 연동 및 초기화 var storage = firebase.storage(); // firestore 연동 객체 cs firestore에 데이터를 저장하는 과정은 간단하다. 단 코드를 구현하기 전에 먼저 fi..
요즘 웹개발을 하면서 많은 라이브러리를 사용하고 있다. 사용하는 라이브러리가 모두 잘 연동되면 좋겠지만 처음 사용하는 것들은 연동하는데 많은 오류가 발생하고 이를 해결하는데 많은 시간이 걸리는 것 같다. 요즘 웹개발을 할때 특별한 경우가 아니면 무조건 firebase를 통해 개발한다. firebase는 로컬 호스팅 및 DB, auth 모듈과 연동성이 좋다. 이번에 포럼 사이트를 만들면서 게시글 작성 페이지를 만들었는데 한국 사람들이 만들고 손쉽게 글작성 탬플릿을 적용할 수 있는 "summernote" 라이브러리를 사용하였다. 사실 firebase와 summernote 연동에는 큰 문제는 없다. 이는 단순히 텍스트를 db에 저장했을때 이야기이다. 먼저 summernote 동작 구조는 삽입한 곳에 글작성 탬..
firestore 데이터 베이스는 mongoDB보다 더 간단하면서도 출시된지 얼마 안된 시스템이라 제한점이 많았다. 특히 firestore에 관한 한국 자료가 많지 않아 불편하였다. firesbase 자체가 웹뿐만 아니라 안드로이드도 지원하여 웹개발에 대한 자료가 그렇게 친절하지는 않았다. 물론 이런 부족한 점은 구글에 영어 검색을 통해 해결한다. 이번 포스팅에서 정리한 것은 firestore number 필드의 값을 증가 혹은 감소시키는 것이다. 12345const admin = require('firebase-admin');const functions = require('firebase-functions'); admin.initializeApp(functions.config().firebase); l..
역시 프로그래밍 공부는 직접 개발하면서 해야하는것 같다. 개발을 진행하면서 난관에 막힐때가 정말 많다. 요즘들어 생각이 드는건 지식을 더욱 확장하기 위해서는 영어가 필수인 것 같다. 한국이 아무래도 세계적으로 볼 때 인구가 적으니 검색을 통해 얻을 수 있는 지식이 어느정도 한계가 있다. firebase가 특히 그런데 한국어로 되어있는 자료가 거의 없어 대부분 구글에 영어로 검색하여 해결하고 있다. 그동안 영어 공부를 소홀히 했던 모습에 후회된다. 이번 포스팅에서 정리할 것은 firebase async awiat 적용 방법이다. 이 방법을 찾아내는 것도 기존 자바스크립트의 비동기 방식에 한계를 느껴서이다. 먼저 firestore에 data를 처리하기 위해서는 then을 통해 데이터를 받고난 뒤 비동기 방식..
요즘 firebase로 커뮤니티 포럼을 개발하고 있다. 여러차례 개발하는 것이 실력향상에 도움이 될것이라 생각된다. 많은 오류가 발생하였고 그 중 좀 오래 걸려 해결한 문제들을 짧게나마 정리하려고 한다. firebase로 웹개발을 진행중에 예기치 못한 오류가 발생하였다. firebase 데이터베이스를 모듈화 컨트롤 파일에 매개변수로 넘긴후 잘 넘겨졌나 console.log를 통해 확인하려고 하는데 [object object]라고 나온것이다. 당연히 나로서는 데이터가 매개변수로 잘 넘어가지 않았다라고 판단할 수 밖에 없었다. 하지만 확인한 결과 인증 및 데이터가 넘어온 것에 문제가 없었다. 깃허브나 스택 오버플로우에 수차례 검색한 결과 아주 단순한 문제였음을 깨닫는다. 문제 원인을 알고나서 너무 허탈했다...
firebase와 node.js를 만지다 보면 정말 편리한 라이브러리 및 호스팅 서비스라고 생각되지만 어떤 한편에서는 한계점을 느낄때도 있다. 그래도 웹개발을 하는데 가장 많이 사용하는 서비스이다. 역시 구축한 업체가 구글이다보니.. 대기업은 무시할 수 없나보다. 이번 포스팅에서는 node.js와 firebase를 연동하는데 기본적인 설정법에 대해서 정리해보았다. npm install express --save express는 node.js를 사용하는데 가장 대표적인 통신 모듈이다. 요즘에는 express보다 더 좋은 라이브러리가 출시되었다고 하는데 나중에 천천히 살펴볼 계획이다. 프로젝트 파일을 만드면 가장 먼저 설치하는 라이브러리는 express이다 npm install body-parser --sa..
안녕하세요 엘빈입니다. 최근 node.js를 통해 웹개발 프로젝트를 진행하고 있습니다. 대학교에서 진행하고 있는데요. node.js를 처음 접한게 어느덧 1년이 지났네요. 컴퓨터의 오류와 렉이 빈번히 일어나 포맷후 새롭게 프로그램을 설치하고 있습니다. node.js 또한 그 중 하나이죠. 이번 포스팅에서 node.js 설치 방법에 대해서 알아보겠습니다. 엄청 간단히 진행되니 천천히 따라와주시기 바랍니다. node.js 설치 방법 node.js 다운로드 사이트 바로가기 node.js는 기본적으로 무료로 사용할 수 있는 라이브러리 입니다. js, 자바스크립트에서 확장된 개념으로 제공되는 라이브러리로 서버 구축을 담당하고 있습니다. node.js가 처음 나올때 사람들은 열광했습니다. 왜냐하면 기존 웹개발은 프..
안녕하세요 엘빈입니다. 최근 프로젝트 때문에 라즈베리파이4 b 모델을 구매하게 되었습니다. 라즈베리파이는 초소형 pc로 최근 각광받고 있는 IOT 분야에서 활용되는 제품인데요. 이번 포스팅에서는 rasbian buster lite를 설치해보겠습니다. Rasbian buster lite는 GUI가 아닌 CUI 환경이며 적은 자원 활용으로 낮은 성능의 기기에서 효율적인 os입니다. 보통 rasbian buster lite를 가장 기반으로 두고 추가로 필요한 패키지만 설치하는 경우가 많습니다. 설치하기 위해서는 sd 카드와 sd card 리더기, raspberry pi 기기가 필요합니다. 먼저 sd card를 포맷해야 합니다. sd card formatter를 이용하면 적절한 형태와 방식으로 포맷할 수 있습니..
안녕하세요 엘빈입니다. 저번 포스팅에서는 클래스 상속의 기본 내용에 대해서 알아보았는데요. 클래스간의 상속에서 발생하는 문제들과 필요한 기능들에 대하여 파이썬은 많은 것들을 제공하고 있습니다. 대표적인 것으로 메소드 오버라이딩이 있죠. 이번 포스팅에서는 파이썬 클래스 메소드 오버라이딩에 대해서 알아보겠습니다. 메소드 오버라이딩이란 부모클래스에 존재하는 메소드와 똑같은 이름의 메소드를 자식 클래스내에 구현하는 것을 말합니다. 메소드 오버라이딩은 상속 관계에서만 적용할 수 있는 개념입니다. 왜 부모와 자식의 메소드 이름을 같게 할까요? 쉬운 예를 들어봅시다. 프린터의 기능을 상속받는 레이저 프린터가 있습니다. 레이저 프린터는 프린터로부터 "종이를 인쇄한다"라는 printPaper이라는 기능을 상속받습니다. ..
안녕하세요 엘빈입니다. 저번 포스팅에서는 클래스의 기본 개념에 대해서 알아봤는데요. 클래스를 이용해 다양한 방식으로 코드를 작성할 수 있습니다. 객체 지향 이론에서 빠질 수 없는 개념이 있습니다. 바로 상속이죠. 클래스 활요에서 빠질수 없는 개념으로 불필요한 반복을 피하고 효율적인 코드를 작성하기 위해 고안되었습니다. 클래스 상속이란? 상속이란 물려받는다는 의미를 가진 단어입니다. 클래스 상속이란 말 그대로 어떠한 클래스의 기능을 다른 클래스에게 물려준다는 개념입니다. 프린터를 예로 들어봅시다. 프린터는 종이를 인쇄해주는 기능을 가지고 있습니다. 파이썬에서 프린터라는 물체를 만들어내려면 종이를 인쇄해주는 기능의 메소드와 클래스를 작성하면 됩니다. 하지만 프린터 종류는 하나가 아닙니다. 레이저 프린터와 잉..