GDSC Sookmyung 활동/10 min Seminar 57

알아두면 쓸데있는 신비한 ChatGPT 익스텐션

ChatGPT의 효율성을 향상 시킬 수 있는 크롬 익스텐션에 대해 알아보자! 1. 프롬프트 지니 https://chrome.google.com/webstore/detail/%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8-%EC%A7%80%EB%8B%88-chatgpt-%EC%9E%90%EB%8F%99-%EB%B2%88%EC%97%AD%EA%B8%B0/lhkgpdljnlplgbkonflbhifackjhjmdj/related?hl=ko 프롬프트 지니: ChatGPT 자동 번역기 ChatGPT 쓸 때 질문을 영어로 번역해 주고, 답변도 한글로 번역해 주는 번역기입니다. chrome.google.com ChatGPT 자동 번역기 답변의 정확도를 올리기 위해선, 영어로 질문이 불가피함 영어로 질..

Spring boot와 Flutter로 구글 소셜 로그인 구현하기

배경: 구글 소셜 로그인, 자체적인 JWT 토큰 발급, oauth2.0 전과정 백엔드에서 진행 구현: 프론트엔드에서 사용자가 구글 계정으로 로그인 버튼을 누른다 → 백엔드가 로그인 요청을 받고, 프론트에서 로그인 화면이 웹뷰로 띄워진다 → 로그인 성공하면 모바일 앱으로 이동한다 백엔드 Spring Security 인증 및 인가 과정이 필터 체인으로 이루어짐 인증: 기본적으로 ID-PW 인증 & 세션 영역에 있는 SecurityContext에 Authentication 객체 저장(세션-쿠키 인증) UserDetailsService: 사용자 정보를 가져오는 인터페이스(loadUser) UserDetails: 사용자 정보를 담는 인터페이스 → OAuth2.0 인증 사용시 UsernamePasswordAuthe..

도커와 쿠버네티스 알아보기

도커란 무엇일까? 🐳 도커란 한마디로 데이터나 프로그램을 격리시키는 기능을 제공하는 소프트웨어 도커를 주로 서버에서 이용 개인 컴퓨터에도 한글, 엑셀, 등 여러 프로그램이 함께 동작하듯 서버에도 여러 프로그램이 동작 도커는 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공함 예로 서버나 개인 컴퓨터 상의 환경을 작은 방들로 분할하고 각각의 방들에 데이터나 프로그램을 둔다면, 이 작은 방들을 컨테이너, 이 방들을 다루는 기능을 제공하는 소프트웨어를 도커라고 합니다 도커 엔진 : 도커 소프트웨어의 본체로 이를 설치해야만 컨테이너를 생성하고 구동시킬 수 있음 이미지 : 컨테이너를 찍어내는 역할로 담고있는 소프트웨어 종류에 따라 각 이미지를 다양하게 씀 제약사항 : 종류와 상관없이 리눅스 운영..

Clean Architecture

안녕하세요! 저는 오늘 Clean Architecture라는 주제로 10분 세미나를 하려고 합니다. 제가 클린 아키텍처에 관심을 갖게 된 건 저번 학기부터였습니다. 저번학기에 컴퓨터공학전공 수업인 컴퓨터특강 수업을 들었는데 그 수업의 주제가 클린 코드였습니다. 그래서 사실 코딩이나 알고리즘 공부를 하면서 잘 생각해보지 않았던 클린 코드에 대해 더 깊게 생각해보기 시작했습니다. 그리고 현재 ‘토비의 스프링’이라는 책으로 GDSC 스프링 심화 스터디를 하고 있는데 아직 책 전체를 읽어보지는 못했지만 클린 아키텍처가 얼마나 중요한지에 대해 느끼게 되어 이와 같은 주제로 발표를 준비하게 되었습니다. 먼저 클린 아키텍처란 무엇일까요? 그 전에 아키텍처의 목적부터 알아야 합니다. 모든 아키텍처의 목적은 관심사의 분..

블록체인과 암호화폐

블록체인이란? 블록체인은 바로 블록과 체인의 합성어로 ‘블록’이라는 작은 단위로 구성된 ‘거래 기록’이라는 데이터를 담아 ‘체인’ 모양으로 연결하고, 여러 컴퓨터에 이 데이터를 복제해 저장하는 분산형 데이터 저장 기술이라고 합니다. 그럼 한번 예시를 통해 자세하게 살펴볼까요? 기존 거래 방식은 중앙기관인 은행이 모든 거래 내역을 갖고 있습니다. 만약 A가 B에게 10만원을 송금한다고 하면 현재 금융 시스템에서는 은행이 그 사실을 증명해주는 중간 역할을 합니다. 한편 블록체인은 이 거래 내역을 은행이 아닌 여러 명이 나누어서 저장하게 됩니다. A가 B에게 거래 요청을 하는 경우 해당 거래 정보가 담긴 블록이 생성되어 네트워크 상에 있는 모든 참여자에게 전송되고, 참여자들은 이 거래 정보가 유효한지에 대한 ..

Tailwind CSS + CSS Resource

Tailwind CSS 오픈소스 CSS 프레임워크 중 하나로, Utility-First 컨셉을 가져 미리 설정한 유틸리티 클래스를 활용하는 프레임워크입니다. 작은 스타일 변경에도 컴포넌트를 만드는 번거로움이 싫으신 분, 매번 클래스명을 고민하느라 시간이 많이 드시는 분, 일관된 디자인을 하고 싶은 분께 추천드립니다. 사용예시 .text-lg { font-size: 1.125rem/* 18px */; line-height: 1.75rem/* 28px */; } .font-semibold { font-weight: 600; } .text-gray-900 { --tw-text-opacity: 1; color: rgba(17, 24, 39, var(--tw-text-opacity)); } 위의 HTML 코드는 ..

Spring Batch 알아보기

Spring Batch란? Spring Batch는 대량의 데이터를 처리하기 위한 오픈소스 batch processing 프레임워크이며, 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 기능을 제공합니다. 또한 최적화 및 파티셔닝 기술을 통해 대용량 및 고성능 배치 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공합니다. Spring Batch는 간단하고 직관적인 프로그래밍 모델을 제공하며, 스프링 생태계의 다른 기술과의 통합도 용이합니다. 이를 통해 개발자는 빠르고 쉽게 배치 작업을 개발할 수 있습니다. Spring Batch의 구성 요소 Spring Batch는 크게 Job, Step, Chunk, ItemReader, Ite..

MSA, 마이크로 서비스 아키텍처

넷플릭스, 배달의 민족, 쿠팡 그리고 11번가. 이 유명한 서비스들의 공통점이 있습니다. 바로 대규모 서비스라는점. 그리고 마이크로 서비스 아키텍처(MSA)를 도입했다는 점입니다. 오늘 이 MSA에 대해 공부한 내용을 공유해보도록 하겠습니다. 그렇다면 과거로 돌아가 이 기업들이 MSA의 이전에는 어떤 아키텍처를 사용하였는지 부터 시작하도록 하겠습니다. 모놀리식 아키텍처 모놀리식 아키텍처는 여러 기능들이 하나의 애플리케이션에 뭉쳐있는 서비스 입니다. 기능들을 단 하나의 코드베이스로 개발하고 배포 시 단일 데이터베이스를 사용합니다. 초기에는 개발 속도도 빠르고 배포하기도 쉽고 기능을 붙이기도 쉽습니다. 하지만 이 한 애플리케이션에 기능을 점점 붙여갈수록. 즉, 대규모 서비스가 되어갈수록 문제점이 들어나는데요..

Apache Kafka 알아보기

아파치 카프카(Apache Kafka)란? 애플, 페이팔, 우버, 넷플릭스, 스포티파이 등 수많은 글로벌 기업에서 사용하는 빅데이터 처리를 위한 분산 스트리밍 플랫폼이다. 아파치 카프카는 빅데이터 시대의 서비스를 지탱하는 훌륭한 오픈소스로 자리잡았다. 분산 스트리밍 플랫폼으로 운영되는 아파치 카프카는 빅데이터 플랫폼뿐만 아니라 MSA(Microservice Architecture) 구조의 백엔드 아키텍처에서도 중요한 역할을 하고 있다. Befor Kafka 간단한 단방향 통신에서 시간이 지날수록 Source Application과 Target Application이 많아지면서 데이터를 전송하는 라인이 많아지고 복잡해짐 데이터를 전송하는 라인이 많아지면 배포와 장애에 대응하기 어려워짐 데이터 변경이 있을 ..

AI코딩

AI 코딩이란 말을 들어보셨나요? AI 코딩은 쉽게 말해 AI가 코딩을 해주는 것을 의미합니다. 최근 들어, AI 코딩 프로그램이 많이 생겨나고 있는데요. AI 코딩이 만들어지게 된 배경은 무엇일까요? 첫 번째, 개발자를 양성하기 위한 시간과 어떤 서비스를 출시할 때 그것을 개발하고 테스트하고 검증하는 시간을 단축하기 위해서입니다. 두 번째로는 비개발자도 코딩할 필요성의 증가 때문입니다. 이때 개발자가 존재하지 않아도 AI코딩을 이용하면 개발자의 업무까지 대체할 수 있기 때문입니다. 즉, 반복적인 작업은 컴퓨터에게 맡기고 인간은 추상적인 검토와 판단 및 명령만 내리면 되게 끔 하기 위해서입니다. 이렇게 많은 도움을 주는 AI코딩은 현재 어떠한 것들이 있을까요? AI코딩의 대표적인 예시는 다음과 같습니다...