전체 글

    [논문리뷰] MapReduce: Simplefied Data Processing on Large Clusters

    Introduction Programming Model Implementaion Refinements Performance Experience

    [논문리뷰 시작] Piranha: Optimizing Short Jobs in Hadoop

    작년 2학기 [빅데이터프로그래밍] 수업에서 공부했던 논문을 정리해보려고 합니다. 수업에서 위의 Hadoop/Spark와 관련된 논문들 중 하나씩 맡아서 공부하고 발표하는 과제가 있었습니다. 저는 Piranha: Optimizing Short Jobs in Hadoop이라는 논문을 맡았는데, 빅데이터를 처리하기 위한 Hadoop에서 small job을 고려하는 이유와 방법이 궁금해서 선택했었습니다. 당시에는 이런 논문을 보는게 처음이기도 했고 CS 관련 지식도 부족해서 리딩하는데 상당히 많은 시간을 쏟았었습니다. 하지만 논문을 읽으면서 그 기술이 어떤 배경에서 나왔고, 중요한 개념들은 무엇이며, 어떻게 구현되는지 이해하는데 큰 도움이 되었습니다. 개인적으로 하둡 생태계에 관심이 많아서, 관련 논문들을 꾸준..

    [대시보드 개발] 스마트팜 실시간 데이터 시각화

    🍀 주요 내용 토마토 스마트팜 데이터 사용 데이터 실시간 시각화(Apache Kafka) 스마트팜의 환경변수를 사용하여 생산량 예측 및 시각화 진행 기간 2020.09.01~2020.12.21 전체 코드 youjeongsue/smartfarm-dashboard 토마토 스마트팜 실시간 대시보드 - 소프트웨어융합 캡스톤디자인. Contribute to youjeongsue/smartfarm-dashboard development by creating an account on GitHub. github.com

    [알고리즘] 기본적인 정렬 알고리즘 자세히 정리

    1. O(nlogn)인 것 1. 병합 정렬 배열을 최소단위까지 분할 후, 합치면서 정렬하여 하나의 배열을 만드는 방식이다. 합칠 때는 두 배열의 0번째 원소를 비교하며 더 작은 원소를 추가하고 다시 비교하는 과정을 반복한다. 분할 과정은 logN만큼 일어나며, 2N의 공간을 사용한다. 이때 배열이 아닌 linked list를 사용하면 N의 저장공간으로 구현이 가능하다. 기존 저장공간에서 포인터만 바꾸는 식으로 수행할 수 있다. 배열을 쪼갤 경우 head 포인터를 추가로 만들고, 합병 과정에서는 next 주소값을 적절히 설정해주면 된다. 합병정렬은 같은 숫자의 경우 순서가 뒤바뀌지 않는 stable sort이다. 2. 힙 정렬 원소들을 힙에 삽입하는데 각 노드의 값이 자식노드보다 큰 이진트리가 되도록 삽입..

    자료구조

    정리해라 인간

    [웹 개발] 포즈인식 기반 비대면 실기수업 플랫폼

    코로나19로 인해 거의 모든 수업이 비대면으로 이뤄지고 있는 지금, 실기수업 위주의 학과들에서는 제대로된 수업을 할 수 없어 많은 불만이 쏟아져나오고 있는 상황입니다. 저희는 체육수업에 초점을 맞추고, 이런 문제를 포즈인식 기술을 활용하여 해결해보고자 하였습니다. 교수의 수업 영상, 학생의 실습 영상을 비교하여 채점 결과를 제공하는 것이 주요 기능입니다. 그 외에도 웹캠을 활용한 녹화, 영상 업로드, 과제 피드백 등의 기능을 제공합니다. 💗 주요내용 Alphapose를 backbone으로 포즈 인식을 위한 알고리즘 개발 두 포즈의 정확도 측정 지표 개발 수업에 활용할 수 있는 웹 서비스 개발(FE/BE) → 제가 맡은 부분입니다! 학생용 기능: 수업 동영상 확인, 웹캡을 활용한 동영상 녹화 및 업로드, ..

    [추천 시스템] 리뷰 데이터를 통한 데이트 코스 추천 프로그램

    🎀 주요 내용 데이트 코스: 맛집/카페 + 데이트 명소 + 영화 사용자가 원하는 '(형용사 형태의)무드'+장소에 적합한 데이트 코스를 추천해준다. 장소들의 '무드'를 파악하기 위해 리뷰 데이터 수집 및 번역, 각 리뷰에서 나타나는 형용사 추출(자연어 처리) 비슷한 무드를 묶기 위해 형용사 벡터화 및 클러스터링 Hybrid Method(Contents based Filtering + Neural Collaborative Filltering)을 사용한 추천 모델 개발 사용자가 원하는 무드와 가장 비슷한 형용사(벡터 유사도 측정)를 클러스터에서 찾아서, 해당 클러스터에 속한 장소들이 추천 대상! 추천 대상 중 hybrid method의 점수가 높은 장소를 최종적으로 추천해준다. 진행기간 2020-1학기 전체 ..

    [데이터 중심 애플리케이션 설계] 7장 트랜잭션 - 트랜잭션과 격리 수준

    * 이 글은 [데이터 중심 애플리케이션 설계]를 공부하며 기록을 남긴 것입니다. 트랜잭션 다수의 읽기와 쓰기(다중 객체에 대한 다중 연산)를 하나의 논리적 단위로 묶는 방법 → 전체가 성공하거나 실패함 실패나 오류를 처리하기 쉬워짐: 안전성 보장(ACID) 애플리케이션에서 DB에 접근하는 프로그래밍을 단순화하기 위한 목적 트랜잭선의 개념은 모호해졌고, 이점과 한계가 명확하다! 1. ACID 원자성 Atomicity 여러 작업을 하나의 트랜잭션으로 묶어 처리하는 것 오류가 생기면 전체를 abort하고 안전하게 재시도한다. 트랜잭션의 핵심 기능! 여담으로.. Django는 이런 abort 트랜잭션을 재시도 하지 않아서, 오류가 생기면 요청은 사라지고 사용자는 오류만 받게된다. Django로 작업할 때 유독 ..