분류 전체보기 (8) 썸네일형 리스트형 프로젝트 방향 탐색 어쩌다 보니 지인의 스타트업에서 진행하는 한 프로젝트를 맡게 되었다.... 기존에 영상 촬영을 사람이 직접 촬영하고, 영상을 업로드하도록 하고 있는데 이를 자동화하는 프로젝트였다. 요구하는 조건은 다음과 같다 1. 1080p60FPS로 4개의 카메라에서 촬영한 영상을 서버에 업로드 2. 원격으로 촬영 상태 모니터링이 가능해야 함 3. 녹화 시작, 종료, 메모리 삭제 등 제어 가능 4. 카메라는 설치가 간단해야 함 우선 카메라 선정을 위해 무선으로 설치 가능한 카메라를 위주로 서칭을 해보았다. 그 결과 크게 홈 CCTV, 야외 CCTV, USB WebCam, actionCam 이렇게 4가지로 큰 카테고리가 구분되었는데 CCTV로 출시되는 모델의 경우 카메라 FPS가 너무 낮아 사용이 어려웠고 USB Web.. 객체의 주소를 저장하는 배열 클래스 (윤성우 열혈 C++) C++의 배열은 접근인덱스에 대해 유효성을 검사하지 않는다. 때문에 적절하지 않은 동작이나 오류를 만들어낼 가능성 이있다. 이러한 문제는 배열 클래스를 선언 하여 접근인덱스값이 유효한지 확인 하는 과정을 추가하는것으로 해결할 수 있다. 배열클래스를 선언하는 방법에는 크게 아래 두가지가 있다. 1. 객체를 저장하는 배열을 이용 2. 객체의 주소를 저장하는 배열을 이용 1. 의 경우 생성한 객체를 대입연산자를 통해 객체에 저장된 값을 복사해와서 저장해야 한다. 때문에, 객체가 복잡한경우 자원소모가 크고 동적할당을 포함한 객체라면 깊은 복사가 이루어져야 한다. 때문에 2.의 방식이 보다 많이 사용된다고 한다. (윤성우님 피셜) 사실 여기까지 이야기한 내용을 이해할 수 있고 앞으로 고려해야한다는 점이 가장 중요.. 윤성우 열혈 C++ EmployeeManager C++의 기본적인 문법들을 다시 공부하기 위해 "윤성우 열혈 C++ 프로그래밍"이라는 책을 보고있다. 책에는 유익한 예제가 많이 실려있지만, 그 중 상속과 가상함수의 쓰임을 배우기에 정말 좋은 예제라는 생각이 들어 포스팅 해두려고 한다. 이 예제는 특이하게 1차로 코딩을 하고 코드를 보수해야하는 상황을 가정하여 제시되었다. 우선 먼저 제시된 코드는 아래와 같다. 필자가 책을 참고하여 작성하였기 때문에 책과는 조금 다른 부분이 있을 수 있다. 상속, 가상함수, 오버라이딩에 대해 이제 막 배웠지만 이걸 어디다 써먹어야 할지 잘 모르겠는 사람이 있다면 첫번째 예제를 제시된 조건에 맞춰 동작하도록 바꾸다보면 자연스레 그 쓰임을 체득할 수 있을것 같다. #include #include using namespace.. List, Vector, deque, Array 비교 다수의 데이터를 저장할 수 있는 컨테이너들중 자주 사용되는 3가지(벡터, 덱, 리스트)들의 특징을 정리해보았다. 어차피 속도는 그리 중요하지 않기에 ㅎㅎ 그냥 편한걸로 쓰는 경우가 많았다 하지만 다수의 데이터를 다루게되면 처리속도에 큰 영향을 줄수 있는 요소이므로 컨테이너별 특징, 장단점을 다루고 넘어가려고 한다. 1. Vector array 기반 구조 but, 크기를 바꿀수 있음 장점) 컨테이너의 끝에 데이터를 추가/삭제가 매우 빠르다. 메모리가 연속적, position index로 접근, iterator 연산자를 이용한 접근이 가능하다. 물론, index를 이용한 접근도 가능하다. 단점) 컨테이너의 중간에서 삽입/제거 효율이 떨어진다. (모든 원소들을 한칸씩 당기거나 밀어야 함) 원소들을 연속적으로 .. programmers) 힙(heap) / 디스크컨트롤러 최근 프로그래머스라는 사이트를 알게 되었고 해당 사이트에 나와있는 연습문제를 하나씩 풀어 보는 재미로 군생활을 녹이고 있다 ㅎ 코딩을 아두이노로 시작한 비전공자에게 자료구조란 생전 처음 보는 친구였다. Programmers 라는 사이트는 코딩 테스트에서 주로 출제되는 유형별로 묶어두었고, 덕분에 갈래를 잡고 공부하는데 많은 도움이 되었다. 이번 포스팅에서 풀어볼 문제는 아래 링크를 통해 확인할 수 있다. https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는.. [기초] CMake를 이용한 라이브러리 구조화 (goormIDE) 필자의 코딩 첫 경험은 사실 아두이노였다. digitalWrite(1,1); ^^ 이후 파이썬, OpenCV, 라즈베리파이, AVRstudio, ROS 등을 거쳐오면서 조금씩 코딩을 알아가고 있다. 하지만 컴공과가 아니기 때문에 대부분 필요에 의해서 코드를 작성하였다. 그러다 보니 혼자만 읽을 수 있고 작동되는 코드를 작성했다. 그냥 모든 코드를 하나의 소스파일에 때려적고 실행시켜도 동작만 잘되면 완성이었다. 때문에 라이브러리 구조 따위는 전혀 신경쓰지 않고 살아왔다. ㅎㅎㅎ 그런데 다수인원이 작업하는 프로젝트나 ROS와 같이 규모가 큰 프로젝트에서는 불편한 점들이 어느 정도 있었던 것 같다. 때문에 이번 기회에 Cmake와 라이브러리 구조화를 연습해 보고 넘어가려고 한다. 이전글 (2021/01/11 .. goormIDE에서 g++을 이용한 라이브러리, 실행파일 생성 필자는 군대 사지방(사이버지식정보방)에서 이것저것 코딩 연습을 하고 있다. 우리 부대의 쾌적한 컴퓨터는 무려 리눅스 기반으로 국내 개발한 '하모니카'라는 OS를 사용하고 있다. 이렇게만 보면 프로그래밍 연습하기에 참 좋을 수도 있겠다. 하지만 보안을 이유로 터미널 창과 관리자 권한을 막아두어 할 수 있는 것이 거의 없다. ㅎㅅㅎ 때문에 aws, googlecolab, goormIDE 등 여러 클라우드 서비스를 이용하게 되었다. 그중 가장 무난하게 C++ 언어 자체를 연습하기 좋은 것은 goormIDE였다. cpp 컴파일 과정 1. GoormIDE 사용 goormIDE( https://ide.goorm.io/ )에 접속하여 회원 생성을 하고 가입하면 된다. goormIDE는 Doker 기반의 클라우드 컴퓨.. Intro about me 나는 사실 지금 구닌이다. 주변에 비해 좀 늦은 나이에 입대하여 이제 갓 일병의 절반(일꺽)을 지났다. '평화지키미 '라는 블로그의 주인(야호선종)과 깊은 악연(앙치킨)을 갖고 있으며 최근 블로그를 시작하게 되었다. 나도 지금 당장은 무엇으로 이 텅빈 블로그를 채워가야 할지 잘 모르겠지만 시간 때울 겸 자기 계발 겸 지금까지 공부했던 것들을 정리할 겸 블로그에 연재해보려고 한다 ... 이전 1 다음