Group Study (2022-2023) 83

[Machine Learning] 5주차 스터디 - Object Detection: -stage-detector

스탠포드대학에서 발표한 CNN 강의 영상을 듣고 자료를 정리했습니다. Lecture 11 | Detection and Segmentation https://www.youtube.com/watch?v=nDPWywWRIRo Lecture 11 | Detection and Segmentation Computer Vision Task로는 총 4가지가 있다 그 중 Segmantic Segmentation과 Classification + Locaization 과 Object Dectection를 다뤄볼 것이다. 1. Semantic Segmentation 픽셀로 모든 사물 구분한다 전체 이미지에 하나의 카테코리를 할당하는 것이 아니라 픽셀 별로 카테고리를 할당 단점 : 객체들의 개수는 파악할 수 없다. 두 마리 소..

[Algorithm] 5주차 스터디 - 다이나믹 프로그래밍

Dynamic Programming 다이나믹 프로그래밍(DP) 즉, 동적 계획법은 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하고 다시 큰 문제를 해결할 때 사용하는 기법이다. DP는 재귀와 유사하지만 재귀는 사용하면 동일한 계산이 여러번 반복되어 비효율적인 계산이 될 수 있다는 점이 DP와 큰 차이점이다. DP는 재귀의 이러한 단점을 개선해준다. DP를 구현하는 방법 중 가장 많이 사용하는 방법은 `Memoization(메모이제이션)`이다. Memoization은 한번 구한 결과를 메모리 공간에 메모해두고 같은 식을 호출하면 메모한 결과를 그대로 가져오는 기법이다. 값을 기록한다는 점에서 `Cashing(캐싱)`이라고도 한다. DP는 주어진 문제가 DP유형인지 파악하는 것이 중요하..

[Spring 입문] 4주차 스터디 - 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기

구글 로그인 연동 clientId, clientSecret : 아래 링크에서 인증 정보를 발급받는다. Google Cloud Platform 클라우드 플랫폼에 신규 프로젝트 생성하기 새 프로젝트 생성 후, API 및 서비스 > 사용자 인증 정보 > 사용자 인증 정보 만들기 > OAuth 클라이언트 ID > OAuth 동의 화면 구성 OAuth 동의 화면에서 앱 이름에는 구글 로그인 시 사용자에게 노출될 어플리케이션 이름을 작성한다. 지원 이메일은 사용자 동의 화면에서 노출될 이메일 주소를 작성한다. 구글 API 범위는 등록할 구글 서비스에서 사용할 범위 목록으로 기본값은 email, profile, openid이다 2. 사용자 인증 정보 만들기 : API 및 서비스 > 사용자 인증정보 > 사용자 인증정보..

[Spring 심화] 4주차 스터디 - 4장 예외

4.1 사라진 SQLException JdbcTemplate으로 바꾼 후 deleteAll() 메소드 : thorws SQLException 선언 사라짐 왜 SQLException이 사라졌을까? 초난감 예외처리 예외 블랙홀 : 예외를 처리하지 않고 넘어가는 경우 예외 무시하고 계속 진행 상황 : catch로 잡은 후 아무것도 하지 않고 넘어감 문제 : 예외가 발생했는데 무시하고 계속 진행 → 최종적 오작동시 발견 힘듬 try{ ... } catch(SQLException e){ } 예외 잡고 화면에 로그 띄우기 } catch(SQLException e){ System.out.println(e); } 상황 : 예외 발생시 화면에 출력해줌 문제 : 로그와 메세지 금방 묻힘, 예외가 처리되지 않음 콘솔, 로그..

[Node.js 입문] 3주차 스터디: 미들웨어, REST, 쿠키와 세션

미들웨어 미들웨어는 요청과 응답의 중간에 위치한다. 뒤에 나오는 라우터와 에러 핸들러 또한 미들웨어의 일종이다. 미들웨어는 요청과 응답을 조작하여 기능을 추가하기도하고 나쁜 요청을 걸러내기도 한다. app.use((req, res, next) => { console.log('모든 요청에서 다 실행된다.'); next(); }); app.get('/', (req, res, next) => { //미들웨어 2개 연결 console.log('GET / 요청에서만 실행된다.'); next(); }, (req, res) => { throw new Error('에러는 에러 처리 미들웨어로 간다.') }); app.use((err, req, res, next) => { console.error(err); res.st..

[React] 4주차 스터디 - (심화) React Redux

Redux 구성 요소 store: 애플리케이션의 상태 저장, 내에 Reducer 함수 존재 Dispatch: Ruducer 함수에게 Action 송신 Action: 발생된 이벤트와 API로서의 데이터 수신 등 상태를 갱신하기 위한 정보를 담은 object, Dispatch를 통해 Action을 Reducer로 보낼 수 있음 Reducer: Dispatch를 통해 받은 Action을 토대로 state를 modify, 갱신, 변경할 수 있는 유일한 함수 View: 애플리케이션의 유저 인터페이스(UI) Setup npm i react-redux react-router-dom Connecting the Store store.subscribe(): 변경 상태를 알려줌 store.js 작성 import { crea..

[React] 4주차 스터디 - Handling Events & react-router-dom

Event의 정의 및 Event 다루기 Event: 특정 사건을 의미 (ex. 사용자가 버튼을 클릭한 사건) camelCase: 첫글자는 소문자로 시작하되, 중간에 나오는 새로운 단어의 첫글자는 대문자로 표기 Event Handler(Event Listener): 어떤 사건이 발생하면, 사건을 처리하는 역할 Event Handler 정의 방법 함수 안에 함수로 표기 arrow function을 사용하여 정의 Argument(Parameter): 함수의 주장할 내용, 함수에 전달할 데이터 bind 사용 코드 this.handleConfirm = this.handleConfirm.bind(this); handleConfirm() { this.setState((prevState) => ({ isConfirme..

[Algorithm] 4주차 스터디 - 큐와 덱

Queue 메모리 안 데이터를 더욱 효율적으로 다루기 위해 만들어진 데이터 참조 방식. 한쪽 끝에서 원소를 넣고 반대쪽 끝에서 원소를 뺄 수 있는 자료구조 (First in First out) 큐에서는 추가되는 곳을 뒤쪽(rear)이라고 하고 제거되는 쪽을 앞쪽(front)이라고 한다. 제일 앞, 뒤가 아닌 나머지 원소들의 확인/변경이 불가능하다. 시간복잡도 연산 시간복잡도 삽입 O(1) 제거 O(1) 앞/뒤 원소 확인 O(1) Deque 양쪽 끝에서 삽입과 삭제가 전부 가능하며 Double Ended Queue라는 뜻을 가지고 있다. 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 불가능하지만 STL deque에서는 인덱스로 원소에 접근이 가능하다. 시간복잡도 연산 시간복잡도 삽입 O(1) 제거 O(1..

[Machine Learning]4주차 스터디 - ResNet 논문 요약 및 코드실습

1. Introduction ResNet은 이해하기 쉬우면서 모델의 성능을 향상시켰다는 점에서 많이 활용되고 있다. ResNet의 가장 큰 특징은 잔여학습을 이용했다는 점이다. 딥러닝은 지금까지 망을 깊게 할수록 성능이 높을것이라고 생각해왔었는데 위 그림을 보면 오히려 56 layer를 갖는 네트워크가 20 layer를 갖는 네트워크보다 성능이 좋지 않은 것을 확인할 수 있다. ResNet은 이러한 문제를 잔여 학습(residual learning)을 이용해 개선하였다. residual block의 역할 네트워크에 대한 optimization 난이도 낮춤 H(x)를 학습하는것이 어려우므로 대신 F(x)= H(x)-x를 학습한다. 학습된 x는 그대로 가져오고, 추가적으로 F(x)를 더해줌 => 전체를 학습..

[Spring 입문] 3주차 스터디 - 머스테치로 화면 구성하기

템플릿 엔진은 지정된 템플릿 양식 + 데이터 ⇒ HTML 문서를 출력하는 소프트웨어 서버 템플릿 엔진 서버에서 DB/API에서 가져온 데이터를 생성된 템플릿에 넣어 HTML 문서 변환후 클라이언트에게 전달 HTML 코드에서 고정으로 쓰는 부분은 템플릿으로, 동적인 부분만 템플릿의 특정부분에 끼워넣어 동작 Thymeleaf, JSP, Freemarker 등 클라이언트 템플릿 엔진 HTML 형태로 코드 작성이 가능, 데이터를 받아서 DOM 객체에 동적으로 그려주는 과정을 담당 클라이언트에서 공통 프레임을 템플릿으로 만들고 서버에서 필요 데이터를 받은 후 이를 템플릿에 배치 Mustache, Squirrelly, 리액트나 뷰의 View 파일 등 머스테치란 무엇인가? “수많은 언어를 지원하는 가장 심플한 템플릿..