Group Study (2024-2025 Q1) 54

[ML 입문] 4주차 스터디

5-1. 로지스틱 회귀로 와인 분류하기0. 개요결정 트리: 예, 아니오에 대한 질문을 이어나가며 정답을 찾아 학습하는 알고리즘불순도: 결정 트리가 최적의 질문을 하기 위한 기준. 사이킷런에서 지니 불순도와 엔트로피 불순도 제공데이터 준비훈련세트와 테스트세트로 나눈 뒤 전처리두 세트 모두 적용되는 전처리 방식이 같다import pandas as pdwine = pd.read_csv('')data = wine[['alcohol', 'sugar', 'pH']].to_numpy()target = wine['class'].to_numpy()from sklearn.model_selection import train_test_splittrain_input, test_input, train_target, test_ta..

[ Spring 심화 ] 4주차 - 예외처리

Chapter4. 예외처리의 학습목표JdbcTemplate 을 대표로 하는 스프링의 데이터 액세스 기능에 담겨있는 예외처리와 관련된 접근 방법을 알아본다.4.1 사라진 SQLExceptionJdbcTemplate 적용 전public void deleteAll() throws SQLException { this.jdbcContext.executeSql("delete from users");}JdbcTemplate 적용 후public void deleteAll() { this.jdbcTemplate.update("delete from users");}JdbcTemplate 을 사용한 코드에서는 throws SQLException 가 사라졌다. 어디로 간 것일까?4.1.1 초난감 예외처리모든 예외는..

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

스프링 시큐리티 : 막강한 인증과 인가 기능을 가진 프레임워크5.1 스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트소셜 로그인을 사용할 경우, 로그인 구현 시 보안, 회원가입 시 본인인증, 비밀번호 찾기 등 여러 기능들을 직접 구현할 필요가 없어 서비스 개발에 집중할 수 있다.5.2 구글 서비스 등록https://console.cloud.google.com (Google Cloud Platform)에 접속 후, ‘프로젝트 선택’ 클릭 ‘새 프로젝트’ 클릭등록될 서비스의 이름 입력생성이 완료된 프로젝트를 선택하고 왼쪽 메뉴 탭을 클릭해서 ‘API 및 서비스 카테고리’로 이동사이드바 중간에 있는 ‘사용자 인증 정보’를 클릭하고 ‘사용자 인증 정보 만들기’ 클릭 ‘OAuth 클라이언트 ID’ 항목 클..

[Flutter] 4주차 스터디_UI 구성하기

1. widget1 ) Scaffold widgetFlutter의 Scaffold 위젯은 앱의 기본 구조와 레이아웃을 정의하는 데 사용된다. Scaffold는 Flutter 앱에서 화면의 기본 골격을 제공하여, 앱 바(AppBar), 바닥 내비게이션(Bottom Navigation), 플로팅 액션 버튼(Floating Action Button), 드로어(Drawer) 등의 일반적인 UI 요소를 쉽게 추가할 수 있게한다. 또한, Scaffold는 앱의 다양한 위젯과 레이아웃을 통합하는 컨테이너 역할을 한다. Scaffold( appBar: AppBar( title: Text('Scaffold Example'), ), body: Center( child: Text('Hello, Scaffol..

[Android] Retrofit2를 활용한 서버통신

코어멤버님이 정리해주신 노션 내용을 참고하여 공부했습니다.서버와의 연결 & RESTful API 이해하기 프론트 개발자에게 서버와의 연결은 중요한 부분입니다. 안드로이드에서는 Retrofit2 라이브러리를 통해 서버 API와 연결하는데요. 처음엔 복잡해 보일 수 있으나, 익숙해지면 백엔드와의 연결이 수월해집니다. 이번 글에서는 서버 통신 개념부터 실습 도구까지 다뤄볼 예정입니다. 서버 통신 기초 개념  📌 HTTP (HyperText Transfer Protocol)HTTP는 클라이언트와 서버 간 정보를 요청(request)하고 응답(response)하기 위한 프로토콜임.특징: 클라이언트가 요청해야 서버가 응답을 보내는 단방향 통신 구조임. 📄 HTTP 메시지 구조start-line요청 메시지: HT..

[ Spring 심화 ] 3주차 - 템플릿

3장. 템플릿✨ 스프링에 적용된 템플릿 기법 살펴보기, 이를 적용해 완성도 있는 DAO 코드 만들기3.1 다시 보는 초난감 DAO🤔 UserDao 코드는 아직 예외상황에 대한 처리와 관련한 문제점이 남아있다!3.1.1 예외처리 기능을 갖춘 DAOJDBC 코드에는 반드시 지켜야할 원칙이 있음예외처리!예외가 발생시 사용한 리소스를 반환하지 못하면 시스템에 심각한 문제 발생 JDBC 수정 기능의 예외처리 코드deleteAll() 메소드public void deleteAll() throws SQLException { Connection c = dataSource.getConnection(); PreparedStatement ps = c.preparedStatement("delete from user..

[ML심화 ] 4주차 스터디

이번 주차는 CNN, VGGNet, GoogLeNet, ResNet 코드리뷰입니다. CNN (Convolution Neural Network)LeNet-5 LeNet은 Yann LeCun과 그의 팀이 개발한 초기의 합성곱 신경망(CNN, Convolutional Neural Network) 모델로, 주로 이미지 인식 작업을 위해 설계되었습니다. LeNet-5라는 이름으로도 잘 알려져 있으며, 특히 손글씨 숫자 인식을 목적으로 개발되었습니다. LeNet 모델은 MNIST 데이터셋(손글씨 숫자 0~9)을 분류하는 데 큰 성과를 보였고, 이후 CNN의 발전에 중요한 기초를 마련했습니다.입력 레이어 (Input Layer): 32x32 크기의 이미지를 입력으로 받습니다. MNIST 이미지의 원래 크기는 28x2..

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

어노테이션 기반으로 개선하기📌 일반적인 프로그래밍에서 개선이 필요한 나쁜 코드는?→ 같은 코드가 반복되는 부분! ⇒ 유지보수성 ↓, 수정 반영되지 않은 반복 코드가 있으면 문제 발생IndexController에서 세션값을 가져오는 부분이 반복SessionUser user = (SessionUser) httpSession.getAttribute("user");index 메소드 외에 다른 컨트롤러와 메소드에서 세션값이 필요하면 그때마다 직접 세션에서 값을 가져와야 한다. 이 부분을 메소드 인자로 세션값을 바로 받을 수 있게 변경config.auth 패키지에 LoginUser 어노테이션 생성package com.jojoldu.book.springboot.config.auth;import java.lang.a..

[Android] Android UI 구현 심화

"오준석의 생존코딩"의 JetpackCompose 시리즈 6-9강을 수강하였습니다. 코드 설명은 코드 블록 내에 주석으로 설명했고 개념적인 부분들은 추가적으로 설명해두었습니다 ☺️ 6강 (Scaffold, TextField, Button, 구조분해, SnackBar, 코루틴 스코프)TextField( value = "", onValueChange = {}, )위와 같이 작성하면 텍스트를 입력받아도 value가 빈 문자열로 설정되어있으므로 동적으로 변수값을 지정해줘야함일반적인 방법class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { supe..

[ML 입문] 3주차 스터디

Chapter 04 다양한 분류 알고리즘04-1 로지스틱 회귀럭키백의 확률도미일 확률빙어일 확률K-최근접 이웃 알고리즘 사용데이터 준비하기import pandas as pdfish = pd.read_csv('')fish.head() // 처음 몇개의 행을 출력fish_input = fish[['Weight', 'Lengh', 'Diagonal', 'Height', 'Width']].to_numpy()fish_target = fish['Species'].to_numpy() species - 타깃, 그 외 - 특성k-최근접 이웃 분류기의 확률 예측from sklearn.neighbors import KNeighborsClassifierkn = KNeighborsClassifier(n_neighbors=3)k..