본문 바로가기
반응형

Develop58

BackTracking, DFS, BFS BackTracking "퇴각검색(backtrack)" Backtracking(퇴각검색)이란 한정 조건을 가진 문제를 해결하는 전략이다. - 출처 : wikipedia - 이번에 알고리즘 스터디를 진행하면서 가장 먼저 접한 내용이 backtracking이다. backtracking은 "한정 조건내의 모든 경우의 수를 고려하는 알고리즘" 이다. 구조적을 깊이우선탐색(DFS)를 기반으로 한다. 하지만 DFS는 모든 경우의 수를 다 구하기 때문에 굳이 한정 조건이 존재하는 환경에서는 비효율적이다. 그래서 이와 같이 조건에 부합하지 않는 수를 무시하고 조건을 만족하는 수를 구하는 방법이 백트래킹 알고리즘이다. 그렇다면 여기서 말하는 깊이우선탐색-DFS는 무엇일까? Depth-First Search "깊이우선탐색.. 2021. 8. 12.
Node.js 개발환경 Node.js 설치파일은 node.js 홈페이지에서 다운받을 수 있다. https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 리눅스 사용자의 경우 apt-get 또는 yum으로 install 하면 된다. sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm sudo ln -s /usr/bin/nodejs /usr/bin/node NodeJS와 관련된 가이드 문서 또는 내용도 공식 홈페이지에서 제공하고 있다. https://nodejs.org/ko/docs/guides/ 가이드 |.. 2021. 8. 12.
Node.js란? Node.js란? Node.js는 자바스크립트를 서버에서도 사용할 수 있도록 하는 서버사이드 스크립트 언어이다. 확장성 있는 네트워크 애플리케이션을 개발하기 위해 사용되는 소프트웨어 플래폼으로, V8엔진 위에서 동작한다. 또한 한정적인 자원을 최대한 효율적으로 사용할 수 있다. https://nodejs.org/ko/ 이와 관련된 Node.js의 특징은 다음과 같다. Node.js의 특징 V8 엔진 Node.js는 V8 Engine 위에서 동작하는 이벤트 처리 I/O 프레임워크이다. 많은 사람들은 V8엔진을 구글이 망하지 않는한 계속 업그레이드 된다고 믿고 있다. (본인도 그렇다.) 지금도 훌륭한 퍼포먼스를 보이고 있으며, 앞으로도 더욱 발전될 것이다. Event-Driven 이벤트가 발생하기를 기다리지.. 2021. 8. 12.
Android APK Decompile 안드로이드 APK를 디컴파일해서 분석하는 방법들에 대해 소개하려고 합니다. 우리가 안드로이드 어플리케이션을 사용하기 위해서는 APK파일을 설치해야합니다. 이 APK파일은 일종의 압축형태의 파일로서 아래의 그림과 같은 구조를 가지고 있습니다. APK파일은 자바코드와 그외의 여러 리소스들을 클래스파일로 컴파일하여 dex파일을 만들어 냅니다. 그리고 그 dex파일과 여러 자원들을 합쳐서 만든 것이 APK입니다. 안드로이드 APK를 분석하기 위해서는 위와 같은 과정을 역으로 거쳐야하는데요 바로 APK파일을 풀어서 dex파일을 분석하는 것입니다. JVM 바이트 코드로 dex파일을 디컴파일하고 class 파일을 추출해내어 java코드를 확인할 수 있습니다. 실제로 apk 파일을 zip파일로 만든 후, 압축을 풀면 .. 2021. 8. 11.
PHP 간단한 회원가입 기능 개발 (3) 현재까지 한 작업을 정리하면 회원가입 입력 페이지를 만들었고 php에서 db와 연동하는 db_init.php파일을 제작했습니다. 이제 post로 넘겨온 데이터를 검증한 후, db_init.php를 사용하여 db에 올리는 작업을 해보겠습니다. db폴더안에 join_chk.php 파일을 만들어줍니다. php에서 post형식의 데이터를 받을때는 $_POST['넘겨오는 데이터의 name']입니다. 각각의 데이터를 받아오면 아래와 같습니다. 이렇게 데이터를 받아왔으면 검증하는 작업이 필요합니다. 각 값들이 존재해야하며, 패스워드와 패스워드확인이 일치해야하고 이메일 형식이여야합니다. 그리고 아이디 및 닉네임의 중복과 각각의 데이터의 길이 등을 검증한 후, 모든 조건을 만족하면 데이터베이스에 올려주어야합니다. 일단 .. 2021. 8. 11.
PHP 간단한 회원가입 기능 개발 (2) 전 글에서 회원가입에 필요한 사용자의 정보들을 입력받는 페이지를 만들었습니다. 그렇다면 이제 이 정보들을 처리해야겠죠? 우리가 회원가입을 하면 그 정보들이 데이터베이스에 저장됩니다. 그리고 로그인을 할때, 데이터베이스에 저장된 정보들과 비교하여 로그인 성공/실패 여부를 결정해줍니다. 이번글에서는 회원가입 정보들을 데이터베이스에 넣기위한 준비 작업들을 할 것입니다. mysql을 사용할 것입니다. 우선 mysql에 사용할 db를 생성시켜줍니다. mysql에 로그인해서 데이터베이스와 테이블, 그리고 컬럼들을 만들어줍니다. 만들어진 컬럼들을 확인하면 위와 같습니다. (mysql 사용법은 구글링하시거나 나중에 올라올 포스팅을 확인하세요!) 이제 mysql에서 필요한 작업들은 끝났습니다. 다음으로 php 에서 db.. 2021. 8. 11.
반응형