Today I Run 43

[GoogleStudyJam] Introduction to Responsible AI

정리왜 구글은 AI원칙을 수립했는가?프로젝트 모든 단계에서 이루어진 결정에 AI원칙이 영향을 미친다. → 결정을 지지하지 않아도 프로세스를 신뢰할 수 있다.자체 비즈니스 요구 사항과 가치에 맞게 AI를 설계할 수 있다.“책임 있는 AI”에 대한 보편적인 정의는 없기 때문에 조직이 자신의 사명과 가치를 반영하는 자체 AI원칙을 개발하고 있다.구글의 AI 원칙 7가지AI는 사회적으로 유익해야 한다.AI는 불공정한 편견을 만들거나 강화하는 것을 피해야 한다.AI는 안전성을 위해 구축되고 테스트되어야 한다.AI를 사람들에게 설명할 수 있어야 한다.AI는 개인 정보 보호 설계 원칙을 통합해야 한다.AI는 높은 수준의 과학적 우수성을 유지해야 한다.AI는 이러한 원칙에 부합하는 용도로 제공되어야 한다.구글은 아래와..

Today I Run 2024.05.09

[GoogleStudyJam] Introduction to Large Lanuage Models

정리수업의 목표 : LLM이란 무엇인가?LLM이란?사전 학습(pre-Trained) 된 다음 특정 목적을 위해 미세 조정(fine-tuned)할 수 있는 대규모 범용 언어 모델을 말한다.fine-tuned : 기본적으로 이미 훈련된 모델을 특정 작업에 맞게 추가적으로 조정하거나 조정하는 것을 의미. 적은 date set을 사용해 다양한 분야의 특정 문제를 해결하도록 모델을 맞춤화 할 수 있다.LLM을 세 가지 특성으로 정리할 수 있다.Large : 데이터의 양이 많다는 것이다. 페타바이트 규모의 큰 데이터를 사용한다. 또한 파라미터의 개수도 많다. HyperParameter라고도 한다. 매개변수는 기본적으로 기계가 모델 훈련을 통해 학습한 기억과 지식이다. 텍스트 예측과 같은 문제 해결에서 모델의 기술을..

Today I Run 2024.05.09

[GoogleStudyJam] Introduction to Generative AI

정리수업의 목표 : Gen AI란 무엇인가?일단 Gen AI를 알기 전에 AI에 대해 알아보자!AI와 머신러닝(ML)의 차이점은? : AI는 인간처럼 생각하고 행동하는 기계를 만드는 학문. 머신러닝은 AI의 하위로 기계를 훈련하는 모델을 만드는 것이다.머신러닝의 모델은 레이블(label)의 유무로 나뉘는데 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning)로 구분한다.지도학습모델은 레이블이 지정된 데이터를 이용해 모델을 학습시킨다. 질문과 정답이 주어지고, 이후 새로운 데이터가 주어졌을 때 적절한 출력을 생성할 수 있다. 예측값과 실제값이 먼 것이 오류라고 볼 수 있다. 오차를 줄여내는 것이 "최적화" 이다.비지도학습은 레이블이 지정되지 않은 데이터를 사용..

Today I Run 2024.05.09

[GoogleStudyJam] 생성형 ai 첫 날!

평소 ai나 빅데이터같은 신기술(이라기엔 이미 메이저인)에 관심이 있었는데, 구글에서 초보자도 접할 수 있는 ai스터디를 모집한다고 해서 당장 신청했다.간단한 구글 클라우드 콘솔 사용방법에 대해 들었는데, 일단 영어를 읽는데 꽤나 많은 노력이 들었고(^^;;) 과제를 진행하면 바로바로 체크가 되서 진도가 나가는 것도 신기했다! 완주 가보자고용

Today I Run 2024.05.09

[Docker] 도커 설치 (window)

예에전에는 window pro 가 있어야만 Docker Desktop을 사용할 수 있었다고 한다. pro에서만 Hyper-V를 설치할 수 있기때문인데, Home에선 아직도 Hyper-V 설치가 불가능하지만, 업데이트로 인해 WSL를 지원해주어 Docker Desktop을 사용할 수 있게 되었다.Windows Subsystem for Linux 2의 줄임말로 윈도우에서 리눅스를 사용할 수 있게 해주는 기능이다.wsl 설치$ wsl --installwsl 버전 변경$ wsl --set-default-version 2그 다음엔 docker.com에 접속해 운영체제에 맞는 설치파일을 받아주면 된다!

Today I Run 2024.05.09

[SQL] 쿼리로 트리구조 출력하기

조직도나 댓글-대댓글처럼 트리 형태의 구조를 갖는 데이터들을 트리 depth에 맞게 출력 할 수 있다.mysqlWITH RECURSIVE CommentTree AS ( SELECT id, parent_id, content, 0 AS depth FROM comment WHERE parent_id IS NULL UNION ALL SELECT c.id, c.parent_id, c.content, ct.depth + 1 FROM comment c JOIN CommentTree ct ON c.parent_id = ct.id)SELECT *FROM CommentTreeORDER BY COALESCE(parent_id, id) ASC, id asc;oracelSELECT c..

Today I Run 2024.05.09

Resolved [org.springframework.web. HttpMediaTypeNotAcceptableException: No acceptable representation

insert 쿼리가 잘 날아갔는데 swagger에서 406에러가 떴다. Hibernate: insert into cafe_post (board_id,content,created_date,modified_date,post_like,title,user_id,view_count) values (?,?,?,?,?,?,?,?)2023-12-26T23:11:42.058+09:00 WARN 4120 --- [nio-8080-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation]처음보는 에러라서 검색해보..

Today I Run 2024.05.09

그런 REST API로 괜찮은가

https://youtu.be/RP_f5dMoHFc?si=x8M0kqRLe6kz6sMs위의 영상을 보고 작성된 글입니다. rest를 구성하는 스타일client-serverstatelesscahceuniform interfaceidentification of resourcesmanipulation of resources through representationsself-descriptive messages : 서버나 클라이언트가 변경되더라도 오고가는 메세지는 언제나 self-descriptive하므로 언제나 해석이 가능하다.hypermedia as the engine of application state(HATEOAS)layered systemcode-on-demand (optional)rest 는 아키텍..

Today I Run 2024.05.09

Hexagonal Architecture (feat.chatGPT)

Intro예전 팀 프로젝트에서 잘못된 DB를 골랐다는걸 알게되었지만, 이미 개발이 한창 진행된 후라서 도저히 처음부터 수정할 엄두가 나지 않았다.. 그래서 원하는 기능을 제대로 구현하지 못한 채로 프로젝트를 마무리했던 기억이 있다. 이번 프로젝트에서는 같은 실수를 반복하지 않기 위해 헥사고날 아키텍처를 도입해보도록 하자.그동안 나는 아무생각없이 전통적인 아키텍쳐를 사용하고 있었다.↓나에게 백엔드 서비스를 개발하라하면 내놓는 패키지 구조└─src ├─main ├─java └─com └─roller ㅡmain │ ├─api ..

Today I Run 2024.05.09

[SpringBoot] JUnit으로 TEST 작성하기

테스트 코드를 작성하는 이유개발 과정에서 문제를 미리 발견할 수 있다.리팩토링의 리스크가 줄어든다애플리케이션을 가동해서 직접 테스트하는 것보다 테스트를 빠르게 진행할 수 있다.하나의 명세 문서로서의 기능을 수행한다.코드가 작성된 목적을 명확하게 표현할 수 있으며, 불필요한 내용이 추가되는 것을 방지한다.단위 테스트와 통합 테스트단위 테스트단위 테스트는 테스트 대상의 범위를 기준으로 가장 작은 단위의 테스트 방식이다. 대체로 메서드 단위를 호출해 의도한 결과값이 나오는지 확인하는 수준으로 테스트를 진행한다. 단위 테스트는 비용이 적게 들기 때문에 테스트 피드백을 빠르게 받을 수 있다.통합 테스트통합 테스트는 모듈을 통합하는 과정에서의 호환성 등을 포함해 애플리케이션이 정상적으로 동작하는지 확인하기 위해 수..

Today I Run 2024.05.09