Giter Site home page Giter Site logo

dailyomg's Introduction

Who am I?

Build data pipeline of products from feeding to processing for expose to search engine in NAVER shopping platform.

  • Experienced in build data pipeline of feeding massive data, processing and delivering.
  • Skilled in building and operating Elastic Stack for massive indexing, real time searching and visualization.
  • Familiar with Hadoop Ecosystem based ETL processing.
  • Adepted in running and deploying applications on container system.

Resume


Don't forget my posts, presentations and contributions too!


Check my additional info here!


Leetcode solving status


Reminiscence

open

My team at Shopping DI in NAVER Corp.

ⓒ 2021. minSW all rights reserved.

dailyomg's People

Contributors

dependabot[bot] avatar occidere avatar

Stargazers

 avatar

Watchers

 avatar  avatar

dailyomg's Issues

Notification 모듈에서 보내는 이미지 전송 요청 시그널 어떻게 받을 것인지 고려

Notification 모듈에서 보내는 이미지 전송 요청 시그널 어떻게 받을 것인지 고려

  • Example
    1. 유저가 Line으로 이미지 즉시 전송 요청
    2. Line Api Server 에서 요청 수신
    3. DailyOMG 에 이미지 수집 시그널 전달 (HOW ?)
    4. DailyOMG 에서 이미지 수집 후 Api Server 로 REST 통신

가능한 방법?

  • DailyOMG 역시 REST 서버로 변경
  • 라이브러리 화
  • 리눅스 서버로 직접 시그널 전달
    ...

스케줄 링크 수정

스케줄 링크 수정

상황

기존 방식처럼 https://ohmygirl.ml/bbs/board.php?bo_table=omg_schedule&year=2019&month=01 으로 접속하면 에러 발생

원인

month 의 값이 dd 가 아닌 d여야 한다.
ex) https://ohmygirl.ml/bbs/board.php?bo_table=omg_schedule&year=2019&month=01

Datasource MongoDB 로 연동

Datasource MongoDB 로 연동

오마이걸 커뮤니티 이외에도 인스타그램 등의 사진이 저장되는 MongoDB 와 연동하여 다양한 컨텐츠를 전송할 수 있도록 한다.

Line Notify 대신 LIne Bot에 주기적으로 사진 전송 역할 위임

Line Notify 대신 LIne Bot에 주기적으로 사진 전송 역할 위임

상황

AS-IS

  • 현재는 Line Notify API 로 자기 자신에게 주기적으로 이미지를 전송

TO-BE

  • Line Bot이 주기적으로 DailyOMG 계정을 통해 주기적으로 이미지 전송
  • 이미지 요청을 유지로 부터 받아 전송하는 역할도 수행

서버 이전

서버 이전

내용

  • 네이버 클라우드 fade-out 을 위해 라즈베리파이 서버로 이전할 것

line_notify_api_key를 어떻게 환경변수로 설정할 것인지 고려

line_notify_api_key를 어떻게 환경변수로 설정할 것인지 고려

상황

  • 3번 서버에서 jenkins 빌드 후 scp 로 2번서버에 배포
  • jenkins의 build with parameter로 env를 잡아도 3번 서버에만 잡힘
  • 어떻게 배포한 2번 서버에 env를 잡을 것인지 고려
  • 더불에 3번 서버에서 어떻게 2번 서버의 jar를 실행시킬 것인지도 고려
    • api 콜?

Let's Encrypt가 Java의 기본 인증서 목록에 포함되지 않는 문제

Let's Encrypt가 Java의 기본 인증서 목록에 포함되지 않는 문제

상황

Let's Encrypt의 Https 인증서를 등록하였으나, javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed 가 계속 발생

원인

  • 무료 SSL 인증서를 발급해 주는 Let's encrypt 의 CA 인증서는 Java VM 에 포함되어 있지 않으므로 Let's encrypt 에서 발급 받은 SSL 인증서를 Java 에서사용할 경우에 이런 에러가 발생한다 (출처)

해결

  • 아래 코드를 서버에서 입력
$ keytool -trustcacerts \
    -keystore $JAVA_HOME/jre/lib/security/cacerts \
    -storepass changeit \
    -noprompt \
    -importcert \
    -file /etc/letsencrypt/live/hostname.com/chain.pem
  • 단, 이 방식은 JDK가 변경될 때 마다 적용해줘야 된다.

참고

MongoDB 에 이미지 저장

MongoDB 에 이미지 저장

API 호출 시 바로 사진을 전송하지 말고 MongoDB 에 저장한 다음 가져가도록 수정

포스트 내 전체 사진 전송이 안되는 이슈

포스트 내 전체 사진 전송이 안되는 이슈

  • 포스트 내 2개 이상의 이미지가 있으나, 대표 이미지 1개만 전송됨.
  • 크롤러 부분 살펴볼 것

세부 내용

  • 한 게시글 내에 여러장의 사진이 있음
    image
  • 그러나 대표 사진 1개만 전송이 됨

InstagramCrawler 추가

InstagramCrawler 추가

고려대상

  • 페이징 처리 어떻게 할 것인지?
  • 주소만 바꿔서 타 그룹 사진 크롤링에도 재사용 할 수 있게 할 것

전송할 사진이 없어도 메시지 보낼 수 있게 수정

전송할 사진이 없어도 메시지 보낼 수 있게 수정

AS-IS

현재 로직에선 전송할 사진이 없으면 빈 리스트가 넘어가서 아무 메시지도 보내지지 않음

TO-BE

[사진 없음] 등의 전송할 사진이 없음을 알리는 메시지라도 보낼 수 있도록 수정

일정표 전송 추가

일정표 전송 추가

내용

  • 일 1회 스케줄도 전송
  • 내일 일정도 함께 전송 고려

고려사항

  • 데이터 추출 방법 고려
    • 홈페이지 크롤링
    • Api 존재 시 사용

참고

Crawler 클래스 상속 구조로 변경

Crawler 클래스 상속 구조로 변경

내용

  • 스케쥴 크롤러 등 추가적인 크롤러 생성을 위해 상속 구조로 변경

Crawler

  • 크롤링 대상 (url: String)
  • 크롤링 범위 일자 (range: int)
  • openConnection: void
  • getResult: List

스케줄 파싱 링크 생성 방법 수정

스케줄 파싱 링크 생성 방법 수정

상황

아래와 같이 now() 를 기준으로 month 를 계산하기 때문에 2/28 일 에 range = 3 으로 추후 3일치 스케줄을 요청하면 파싱이 안됨
(애초에 2월 스케줄만 파싱하고, 3월은 시도하질 않음)

String params = String.format("&year=%04d&month=%d", now.getYear(), now.getMonthValue());

일정표 전송시 일정이 없어도 보내게 할 것

일정표 전송시 일정이 없어도 보내게 할 것

상황

현재 로직으로는 일정이 없으면 메세지 자체를 보내지 않음

개선

일정이 없어도 현재 시간정보와 공백 내용을 보내도록 수정

예시

[10/11(목) 13시 00분]

Line REST API 서버 구축

Line REST API 서버 구축

요구 기능

  • 정해진 시간에 Image push 기능
  • 유저가 채팅창으로 보내는 이미지 요청 이벤트 핸들링
    • 파라미터로 받아야 할 부분
      • 이미지 크롤링 기간

기타

  • 별도 프로젝트로 분리하여 구축할 것
  • 아키텍쳐링
  • 개발 언어 선택
    • Spring 5, Node.js, ...
  • heroku 사용 필수 - SSL

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.