검색 알고리즘이란? : 데이터 집합에서 원하는 값을 가진 요소를 찾아내는 알고리즘 검색 알고리즘의 종류 1) 배열 검색 - 선형 검색 - 이진 검색 2) 선형 리스트 검색 3) 이진검색트리 검색 선형 검색? : 요소가 직선 모양으로 늘어선 배열에서의 검색은 키 값을 갖는 요소를 만날 때까지 맨 앞에서부터 순서대로 요소를 검색한다. int search(const int a[], int n, int key) { int i = 0; while (1) { if (i == n) { return -1; } if (n == key) { return i; } i++; } } int main() { int nx, ky, idx; // 배열의 요소 개수, 선형검색할 수, 검색한 요소의 위치 int* x; // 배열 pri..
2021.08.09 - [프로젝트/2021 한이음 OpenCV를 이용한 얼굴인식 기반 도어락 제작 프로젝트] - 라즈베리파이와 원격 서버 간의 통신을 위한 서버 연결 2021.06.23 - [프로젝트/2021 한이음 OpenCV를 이용한 얼굴인식 기반 도어락 제작 프로젝트] - 라즈베리파이 카메라 모듈 사용 오류 해결 길고 긴 프로젝트 활동이 끝났다. 최종 시안까지 마치고, 코드 분석 및 그동안의 활동을 리뷰하면서 포스팅을 하려고 한다! 필요한 재료 및 소프트웨어 클라우드 구상 : 라즈베리파이 키트(초음파, 온도 센서 모듈 포함) + 해당 프로젝트의 경우 터치 스크린도 포함 네이버 클라우드 서버 도어락, 도어락 제어용 아두이노 문, 문틀 용 나무 자재 프로젝트 목적 : 라즈베리파이로 동작, 얼굴 인식으로..
사용 기술 스택 - Express JS - React Native - Mongo DB - Docker Container 나는 백엔드 분야에 참여하였기 때문에 백엔드를 위주로 기록을 작성할 것이다. MVC모델 (Model-View-Controller) 구조로 개발하였으며 다음과 같이 파일을 분류하였음 config : MongoDB와의 환경설정을 담당하는 폴더 models : 실제 DB에 저장되는 객체를 정의한 폴더 middleware : req요청을 받고 res를 리턴하기 전에 처리해야할 메소드를 정리한 폴더 controllers : 라우터에서 정의한 인터페이스의 동작을 정의해놓은 폴더, 라우터에 매핑한 URL로 이동하였을 때 이 컨트롤러의 코드에 따라 응답을 수행한다. 나는 뉴스 게시판을 생성하는 역할을..
목적 : 라즈베리파이에 저장된 정보(사용자 정보, 출입기록(도어락 해제 시간, 출입자 정보, 출입자 온도))를 원격 서버에 옮겨서 이 데이터를 앱 내부에 전달할 수 있도록 설계한다. 1. 라즈베리파이에서 원격 서버에 데이터 전송하기 https://mongsil-jeong.tistory.com/43 로컬에서 서버로, 서버에서 로컬로 파일 전송 Git에 있는 소스를 서버에 다운받아서 Maven 인스톨하거나, Zip파일을 압축 해제해서 설치하려는 상황이 많이 발생한다. scp 명령어를 통해 로컬서버 원격서버로 파일을 전송할 수 있다. 원격 서버 - mongsil-jeong.tistory.com 라즈베리파이 서버를 일반 서버로 간주해서, 로컬에서 원격 서버에 데이터 전송하는 방향으로 구글링 scp \home\t..
AWS에 접속 -> 회원가입 -> EC2 대시보드에서 Ubuntu 20.04 LTS 프리티어 모드를 구매 - instance : 클라우드 전체에서 내가 쓰는 부분을 말한다. apm 시스템 중 Tomcat 사용(Web-application-system) 설치 후 putty에 ip 넣고 포트는 22 $/etc에서 profile 파일에 들어가서 환경변수 설정 코드 주입하기 Tomcat 9 에서 Core의 tar.gz의 링크 주소를 복사(마우스 우클릭) $ wget (복사한 링크 주소) ls를 눌러보면 압축 해제할 파일이 뜨고, $ tar -xzvf (파일 이름) 으로 zip파일을 푼다. conf : tomcat의 설정 파일 lib : 외부 라이브러리를 저장하는 디렉토리 webapps : 실제 작업한 파일을 넣..
웹 사이트 목적 : 교내 동아리 홍보 사이트 - 메인 페이지 : 슬라이드 배너, 지원 마감되지 않은 동아리 중 순위 TOP 5, 지원 마감 기한 임박 동아리 TOP 5, 내가 관심있는 동아리(스크랩 기능) 리스트 노출 - 회원가입 : 아이디, 비밀번호, 회원 이름, 회원 닉네임, 성별, 회원 타입(동아리장 or 일반 동아리원) - 로그인 : 아이디, 비밀번호 - 동아리 게시판 : 동아리 홍보 사진, 제목, 지원 마감 기한이 글 목록에 노출 - 댓글 : 게시글과 동일 페이지에 CRUD 구현 - 검색 : 동아리 카테고리 내에서 구현? 글로벌하게 구현? // 토의해보기 Create문 짜기 전에 네이버 클라우스 서버 구축 과정을 포스팅해보겠다! [네이버 클라우드 플랫폼 서버] putty에서 접속하기 - IT관련..
과제 피드백 더보기 플레이 버튼 누르면 숫자가 자동으로 사라지도록 하기 transition 추가하기 숫자 중복 방지 숫자 덜 입력했을 때 경고창 난수 생성 -> 수 3개 입력 -> 플레이 버튼 순으로 진행해야 플레이가 정상적으로 진행되도록 for (var i = 0; i < 9; i++) { var resultBox = document.createElement("div"); resultBox.id = "result" + (i + 1); // body태그 안에 9개의 id를 가진 div 넣어주기 document.body.appendChild(resultBox); } result1 ~ result9의 id를 가진 div를 body 부분에 for문을 이용해서 추가한다. for (var i = 0; i < 9;..
자바스크립트 개발 방식 (코드 구조에 따라 분류) - 함수형 - 객체형 1. 함수형 : 버그가 났을 때 그 구역에서만 수정할 수 있다. function sum(a,b){ return 4 * a - b; } 자료형 함수이름(매개변수1, 매개변수2, ---){ 결과값 ~~~; } 코드의 반복이 감소된다. function add(a, b) { //console.log(a + b); return a + b; //반환 } console.log(add(10, 20)); add(15, 25); // 리턴만으로는 출력할 수 없다. add(20, 30); 매개변수를 사용한 자바스크립트 함수의 사용 function mul(a, b) { return a * b; } var num = 2; // 변수 선언 및 정의 conso..