본문 바로가기
현장실습

12월 29일

by Rudy 2021. 12. 29.

29일 스케줄>

오전: 노션-ooooo와의 미팅록 확인하고 이해
오후:
~3시: 노션-ooooo와의 미팅록 확인하고 이해
~4시: 파이썬-mysql 데이터 연동하는거 찾아보기
~5시: 케글과 데이터 분석에 대해 알아봄
~7시: 개발현황 교육

 


<웹 개발>

 

Push API: 웹 애플리케이션이 현재 로딩이 되어 있지 않더라도 서버로부터 메시지를 받을 수 있도록 하는 기능이다. 이는 개발자들이 비동기적으로 사용자에게 새로운 내용을 시기적절하게 전달할 수 있도록 만들어 준다.

 

https://developer.mozilla.org/ko/docs/Web/API/Push_API

 

Push API - Web API | MDN

Push API는 웹 애플리케이션이 현재 로딩이 되어 있지 않더라도 서버로부터 메시지를 받을 수 있도록 하는 기능이다. 이는 개발자들이 비동기적으로 사용자에게 새로운 내용을 시기적절하게 전달

developer.mozilla.org

 

서비스 워커: 서비스 워커는 브라우저가 백그라운드에서 실행하는 스크립트로, 웹페이지와는 별개로 작동하며, 웹페이지 또는 사용자 상호작용이 필요하지 않은 기능에 대해 문호를 개방

풍부한 오프라인 경험, 주기적 백그라운드 동기화, 푸시 알림(일반적으로 기본 애플리케이션을 요구하는 기능)이 웹에서 지원되고 있습니다. 서비스 워커는 이러한 모든 기능의 기술적 기반을 제공

 

->푸시알림기능을 위해서 서비스 워커를 사용하는 것 같다.

 

https://developers.google.com/web/fundamentals/primers/service-workers?hl=ko 

 

서비스 워커: 소개  |  Web Fundamentals  |  Google Developers

풍부한 오프라인 경험, 주기적 백그라운드 동기화, 푸시 알림(일반적으로 기본 애플리케이션을 요구하는 기능)이 웹에서 지원되고 있습니다. 서비스 워커는 이러한 모든 기능의 기술적 기반을

developers.google.com

 

웹사이트는 http에서 https로 구축한 것 같다. 현재 테스트서버 두 개도 https로 구동하고 있는 것 같다고...하심 

 

HTTP: HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜

출처: https://mangkyu.tistory.com/98 [MangKyu's Diary]

 

[Web] HTTP와 HTTPS 및 차이점

1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환..

mangkyu.tistory.com

 

HTTPS: HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜

출처: https://mangkyu.tistory.com/98 [MangKyu's Diary]

 

SHA256: SHA-256은 SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256비트로 구성되며 64자리 문자열을 반환중요한 부분들을 캡슐화를 시킨다. 해당부분을 해시키로 변환https://www.notion.so/sicpama/21-12-21-caf5ef8360fa41ffa9d7682d4629be85#3bb3d604a25c40ea8efb018e9ca3494b

 

-메뉴 리스트들은 세션값으로 처리.

(입력 할 때마다 DB에 저장하면 리소스 과다)

 

-JS ().then 관련해서 찾다가 아래 사이트 참고

https://ssungkang.tistory.com/entry/ES6-Promises-then-catch-all-race-finally

 

 

[ES6] Promises - then, catch, all, race, finally

이번 포스팅에서는 js 의 Promises 에 대해서 알아보도록 하겠습니다. javascript 의 비동기성 사람은 한 번에 두 가지 일을 할 수가 없습니다. 흔히들 말하는 멀티태스킹도 실제로는 한 번에 두 가지

ssungkang.tistory.com

https://github.com/m1guelpf/laravel-fastlogin

생체인증 관련 코드 깃허브

 

GitHub - m1guelpf/laravel-fastlogin: Allow your users to login with FaceID/TouchID

Allow your users to login with FaceID/TouchID. Contribute to m1guelpf/laravel-fastlogin development by creating an account on GitHub.

github.com

-지문인식이 있는 H/W

1. fingerprintJS pro: 브라우저 기반 지문인식을 사용할 수 있다는 api. 다양한 브라우저 호환성

2. webAuthn api

 

 

 

 

 

<데이터분석> 

 

Sequence Model: Sequence Model이란, 연속적인 입력(Sequential Input)으로부터 연속적인 출력(Sequential Output)을 생성

ex) 챗봇, 기계 번역

 

RNN=Vanilla RNN: 입력 x가 들어가면 출력 h가 나오는데 그 출력이 다시 입력과 결합되는 방식. Sequential Data에 적합. 스스로 반복.

 

Sequential Data: 순차적인 데이터. 

ex) 텍스트, 샘플링 주기가 일정한 영상 또는 음성

 

장기 의존성 문제: 바닐라 RNN의 시점(time step)이 길어질 수록 앞의 정보가 뒤로 충분히 전달되지 못하는 현상이 발생

 

LSTM(Long Short Term Memory): RNN의 단점을 보완한 RNN의 일종. LSTM은 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 정함.

 

Mixup Augmentation / TTA

  • Mixup 알고리즘→ 두 클래스 간의 decision boundary가 더 부드럽게 되어 overfitting이 덜 발생한다. 즉, 유연하게 추론하게 해줌
  • 주로 지도학습에 사용되는 레이블링된 이미지를 augmentation하는 방식으로 한 장의 이미지가 아닌 두 장의 이미지를 사용하는 것이 특징, 두 장의 이미지가 있을 때 두 이미지를 합성하여 새로운 이미지를 생성하는 것(이미지 데이터에서 사용하는 알고리즘)

Augmentation: 기존 데이터의 약간 수정된 복사본 또는 기존 데이터에서 새로 생성된 합성 데이터를 추가하여 데이터 양을 늘리는 데 사용되는 기술

 

TTA(Test Time Augmentation): 학습할 때 augmentation하는게 아닌, 테스트 셋으로 모델을 테스트하거나, 실제 운영할 때 augmentation을 수행하는 것

 

Presume your categories are cats, dogs, airplanes, and pianos. MixUp, well, mixes these, so one picture would be 30% cat, 70% dog, another would be 10% airplane, 90% dog, and so on. Thus, for the former, your model would ideally predict 30% cat and 70% dog, rather than 100% cat or 100% dog.

Fast-forward to test time: You have a picture of a dog, but are not sure whether it’s actually a cat, dog, airplane, or piano (common scenario, I’m told). With no MixUp, your model should predict 100% dog and 0% cat, airplane, and piano.

But if you mix 90% of your picture with 10% of a picture of what you know to be a, say, piano, your model should predict 90% dog, 10% piano, and 0% cat and airplane. Given that you know the ratio for each picture, I suppose you could infer that your original picture is a dog, but generally speaking, your model is usually not that accurate (we’ve thus far assumed your model is more or less perfect), and it is much easier for it to classify a picture as just a dog or just a piano than some parts dog some parts piano.

->Mixup 알고리즘을 사용하지 않으면 TTA에서 예를들어 여러 동물들이 있을 때 하나의 동물로만 100% 추론하고, 80% 강아지, 20% 고양이 이런식으로는 추론할 수 없다.

그래서 결론은 TTA를 할 때, 펫 파인더는 이미지 데이터를 사용하니까 mixup 알고리즘을 사용하면 좋을 것 같다는 소리 같다.

 

 

<그 외>

 

앱 개발자는....

  1. 백엔드에서 만들어주는 API를 통해서 받는 앱 개발자
  2. 본인이 직접 서버에서 툴(?) 세팅해놓고 알아서 하는 앱 개발자

-> 1번은 올드한 스타일. 최근 동향은 2번.

 

graphql을 사용해본 앱 개발자가 좋다.

graphql : 웹 클라이언트가 데이터를 서버로부터 효율적으로 가져오기 위한 쿼리 언어. REST API와 유사하다고 보면 됨.

 

 

<Python과 DB 연동하기>

Python(Pycharm)과 MySql 연동하기

새 프로젝트 생성->File->Settings->Project:pythonProject->Python Interpreter->Conda설정(버전 3.7)->좌측 하단 +버튼->sqlalchemy, mysql-connector-python, pymysql 설치

 

Python(주피터 노트북/랩: Anaconda)과 MySql 연동하기

Anaconda Prompt 관리자로 실행->pip install PyMySQL->Python->import pymysql

 

import pymysql

db = pymysql.Connect(host='localhost', user='*1', password='*2', database='*3')

SELECT

import pymysql 

db = pymysql.Connect(host='localhost', user='*1', password='*2', database='*3') #DB랑 연동
cursor = db.cursor() #DB 접속 성공하면 Connection 객체로부터 cursor() 메서드 호출해 cursor 객체를 가져옴

query = "SELECT * FROM students" #query라는 변수에 쿼리(문자열)을 집어넣음
cursor.execute(query) #cursor객체의 execute() 메서드를 사용해서 쿼리를 DB서버로 전송
result = cursor.fetchall() #데이터를 서버로부터 가져온 후, Fetch 된 데이터를 전체 사용

print(result) #한 줄에 다 나옴

for x in result:
    print(x)
# 각 행마다 나옴

#fetchone() 메서드는 결과 하나만 확인

참고: https://luran.me/300

 

PyMySQL - 파이썬으로 MySQL 사용하기

파이썬으로 MySQL 사용하기 Python으로 MySQL에 접속하고, 데이터를 다루려면 여러 라이브러리가 있다. 마침 StackOverFlow에도 이와 관련한 Q&A가 있어서 살펴보고 선택하고자 한다. https://stackoverflow.com/q

luran.me

 

 

'현장실습' 카테고리의 다른 글

1월 12일  (0) 2022.01.12
1월 10일  (0) 2022.01.10
1월 6일+1월 7일(비공개)  (0) 2022.01.07
1월 5일  (0) 2022.01.05
1월 4일(비공개)  (0) 2022.01.04

댓글