Group Study (2023-2024) 39

[스프링 입문] 5주차 chap 07 - AWS에 데이터 베이스 환경을 만들어보자(AWS RDS)

Chap 07_AWS에 데이터 베이스 환경을 만들어보자(AWS RDS) 웹 서비스의 백엔드를 다룬다고 했을 때 애플리케이션 코드를 작성하는 것 만큼 중요한 것이 데이터베이스를 다루는 것이다. 규모가 있는 회사의 경우 데이터베이스를 전문적으로 처리하는 직군 담당자들이 존재하지만 스타트업이나 개발 인원수가 적은 서비스에서는 개발자가 데이터베이스를 다뤄야만 하므로 백엔드 개발자는 데이터베이스를 다룰 줄 알야야 한다. AWS에서 제공하는 관리형 서비스인 RDS를 이용하여 데이터베이스를 구축하고 앞 장에서 만든 EC2 서버와 연동해볼 수 있다. RDS란? AWS에서 지원하는 클라우드 기반 관계형 데이터베이스 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에..

[스프링 입문] 5주차 chap 06 - AWS 서버 환경을 만들어보자 - AWS EC2

chap06 - AWS 서버 환경을 만들어보자 - AWS EC2 외부에서 본인이 만든 서비스에 접근하려면 24시간 작동하는 서버가 필수 24시간동안 작동하는 서버에는 3가지 선택지가 있다. 집에 PC를 24시간동안 구동시킨다. 호스팅 서비스(Cafe24, 코리아호스팅 등)을 이용한다. 클라우드 서비스(AWS, AZURE, GCP 등)을 이용한다. 일반적인 비용은 호스팅 서비스나 집 PC를 이용하는 것이 저렴하지만 특정시간에만 사용량이 몰린다면 유동적으로 사양을 늘릴 수 있는 클라우드가 유리 클라우드 : 클라우드 서비스는 인터넷(클라우드)를 통해 서버, 스토리지(파일 저장소), 데이터베이스, 네트워크 ,소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공하는 것이다. 클라우드 형태 Infrastructure a..

[Android 입문] 5주차 스터디 - RoomDB, SharedPreferences, Datastore

1.RoomDB 앱은 DAO를 사용하여 데이터베이스의 데이터를 연결된 데이터 항목 객체의 인스턴스로 검색할 수 있게 한다. Room의 3가지 주요 요소: 데이터베이스 클래스(포인터), 데이터 항목(테이블), 데이터 액세스 객체(메서드) 1) RoomDB 설치 MainActivity에서 Room 을 입력 후 alt+enter 로 add dependecy 한다. build.gradle에서 plugins 에 kotlin-kapt 와 dependencies에 kapt를 추가한다. plugins{ id("kotlin-kapt") } dependencies { implementation("androidx.room:room-runtime:2.6.1") annotationProcessor("androidx.room:r..

[ML입문] week6 - 합성곱 신경망

1. 합성곱 신경망 합성곱 신경망은 주로 이미지 분류를 할 때 자주 쓰이는 신경망이다. 이러한 합성곱 신경망은 크게 합성곱층과 풀링층의 쌍으로 구성된다. 2. 합성곱층 2-1 ) 연산 과정 합성곱층에서는 합성곱 연산을 통해 이미지의 특징을 추출한다. 3x3 또는 5x5 크기의 행렬인 필터(커널)를 이미지의 왼쪽 위부터 오른쪽 아래까지 순차적으로 훑는다. 이렇게 훑는 과정을 슬라이딩이라고 한다. 위 사진에서는 5x5 크기의 이미지를 3x3 커널을 슬라이딩 시켰다. 총 행 방향 2번, 열 방향 2번의 슬라이딩을 통해 2x2 크기의 행렬을 얻었다. 커널을 사용하여 합성곱 연산을 통해 나온 결과값을 특성 맵이라고 한다. 또한, 이처럼 합성곱 연산을 통해 얻은 특성 맵의 크기는 이미지의 크기보다 작다. 2-2 )..

[Flutter] 6주차 스터디_State management와 Deep linking

1. State management • State : 언제든지 UI를 빌드하기 위해 필요한 모든 데이터 • ephemeral state VS app state State는 ephemeral state와 app state로 구분된다. ephemeral state UI state나 local state라고도 불리며 위젯으로 포함할 수 있는 상태를 뜻한다. state management 기술을 따로 쓸 필요 없이 StatefulWidget만을 사용해도 된다. 아래는 StatefulWidget의 코드 예제이다. class MyHomepage extends StatefulWidget { const MyHomepage({super.key}); @override State createState() => _MyHome..

[Flutter] 5주차 스터디_Data Fetch와 Future Builder

Fetch data from the internet 1.http 패키지 추가 flutter pub add http - http를 사용하여 GET/POST의 방식으로 서버 API를 호출할 수 있다. 2.네트워크 요청 생성 - 메서드를 사용해서 JSONPlaceholder에서 샘플 앨범을 가져올 수 있다. Future fetchAlbum() { return http.get(Uri.parse('https://jsonplaceholder.typicode.com/albums/1')); } - Future() : Future 클래스의 인스턴스이다. future은 비동기 작업의 결과를 나타내며 미완료, 완료 중 한 가지 상태를 가진다. 미완료 시, 비동기 함수를 호출하면 미완료 된 future을 반환한다. 해당 fu..

[Android 심화] 5주차 스터디 - 의존성 주입(DI), Hilt, Room

의존성 주입(DI, Dependency Injection)이란? 외부에서 두 객체 간의 관계를 결정해 주는 디자인 패턴 의존성이란 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다. 예를 들어 다음과 같이 Car 객체가 Engine 객체를 사용하고 있는 경우에 Car 객체가 Engine 객체에 의존성이 있다고 표현한다. public class Car { private val engine = Engine() } 의존성 주입이 필요한 이유 의존성 주입을 하지 않은 경우 아래와 같이 Car 클래스 내부에서 Engine을 직접 생성하는 경우 의존성 주입이 이루어지지 않았다고 볼 수 있다. class Car { private val engine = Engine() fun start() { engine.sta..

[ML입문] week6 - 순환 신경망

1. 순환 신경망1) 순환 신경망의 정의와 작동원리이전의 합성곱 신경망과 다르게 뉴런에 자신을 참조하는 화살표, 즉 순환고리가 있다.A,B,C 데이터가 있다고 가정하고, 순환 신경망의 작동 원리를 살펴보자.A가 먼저 뉴런에 입력된다. 이에 출력값인 Oa가 생성되고, 이 Oa가 B를 처리할 때 재사용된다.순환 신경망은 앞의 샘플의 출력을 다시 사용해서 B를 계산할 때 다시 사용한다.그래서 Ob는 어느 정도 Oa에 대한 정보 일를 담고 있을 가능성이 있다.다음으로 C를 처리할 때에는 Ob를 다시 재사용해서 Oc를 계산한다.2) 타임스텝과 순환 신경망의 활성화 함수순환 신경망에서 하나의 샘플을 처리하는 하나의 단계를 타임스텝이라고 한다. 또한, 셀(순환층)에서 출력한 값을 은닉상태라고 한다. 각 뉴런에는 활성..

[Algorithm] 5주차 스터디 - 수학 / 이분탐색, 투포인터 / 해시

목차 1. 개념 정리 (1) 수학 (2) 이분탐색, 투포인터 (3) 해시 2. 5주차 필수 문제 풀이 (1) A - 베르트랑 공준 (백준 4948번) (2) B - 게으른 백곰 (백준 10025번) (3) C - 랜선 자르기 (백준 1654번) (4) D - 어깨동무 (백준 27932번) (5) E - 콰트로치즈피자 (백준 27964번) 1. 개념 정리 (1) 수학 1. 소수 판정법 합성수 N에서 1을 제외한 가장 작은 약수는 ${\sqrt N}$ ex) N = 18 → 2 ≤ $\sqrt 18$ ex) N = 25 → 5 ≤ $\sqrt 25$ ex) N = 21 → 3 ≤ $\sqrt 21$ 즉, 2부터 $\sqrt N$까지의 수로 나누어지지 않으면 소수임을 알 수 있음. 시간 복잡도 $O(\sqrt..

[ML입문] week5 - 딥러닝

6-1 인공 신경망 케라스로 MNIST 패션 데이터를 받아와 이를 분류하는 작업을 한다. train set이 매우 많아 SGD를 사용한다. from sklearn.model_selection import cross_validate from sklearn.linear_model import SGDClassifier sc = SGDClassifier(loss='log_loss', max_iter=5, random_state=42) # max_iter: 반복횟수 scores = cross_validate(sc, train_scaled, train_target, n_jobs=-1) print(np.mean(scores['test_score'])) SGDClassifier와 cross_validate 함수를 사용..