본문 바로가기
  • GDG on campus Ewha Tech Blog

분류 전체보기316

[6주차] 스프링 핵심 원리 이해1 - 예제 만들기 Section 2. 스프링 핵심 원리 이해1 - 예제 만들기 📌 목차 1. 프로젝트 생성 2. 비즈니스 요구사항과 설계 3. 회원 도메인 3-1. 회원 도메인 설계 3-2. 회원 도메인 개발 3-3. 회원 도메인 실행과 테스트 4. 주문과 할인 도메인 4-1. 주문과 할인 도메인 설계 4-2. 주문과 할인 도메인 개발 4-3. 주문과 할인 도메인 실행과 테스트 프로젝트 생성 일단 스프링을 사용하지 않고 순수 자바를 이용해 예제를 만들어 본 후, 불편한 점을 스프링으로 개선해보기 스프링 부트 스타터 사이트를 통해 스프링 프로젝트를 생성하고 초기 세팅하기 프로젝트 선택 Project: Gradle Project Spring Boot: 2.6.x (SNAPSHOT, M 버전 제외 가장 높은 버전으로) Lang.. 2022. 5. 20.
[알고리즘 스터디] 6주차 활동 기록 GDCS 알고리즘 스터디 6주차(5/15) 활동 기록입니다. 6주차에는 간단한 '오픈채팅방' 문제에 대한 풀이를 공유하였습니다. 문제 설명 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 1. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. .. 2022. 5. 19.
[3-2, 3주차] 연산자 오버로딩과 기타 관례(3) - 구조 분해를 사용하면 복합적인 값을 분해해서 여러 다른 변수를 한꺼번에 초기화할 수 있다. 내부에서 구조 분해 선언은 관례를 사용하는데, 각 변수를 초기화하기 위해 다음과 같이 componentN이라는 함수를 호출한다. val (a,b) = p ---> val a = p.component1() val b = p.component2() data 클래스의 주 생성자에 들어있는 프로퍼티에 대해서는 자동으로 componentN 함수가 만들어진다. 구조 분해 선언은 함수에서 여러 값을 반환하게 할 때 유용하다. data class NameComponents(val name:String, val extension: String) fun splitFilename(fullName:String): NameCompon.. 2022. 5. 17.
[4주차] Transformers Full Stack Deep Learning 1. Transfer Learning in Computer Vision 이미지 데이터 1 만장으로 새 분류→ 과적합 발생할 수 있음 → fine tuning → Resnet-50가 좋은 성능을 보일 것 큰 데이터로 학습 시킨 large model (=pretrained model) 학습 되어있는 모델을 가져와 새로운 레이어를 더하거나 교체해 학습 → 더 적은 데이터로 빠르고 정확하게 학습 가능전이 학습이란? Model zoo pretrained-model tensorflow, pytorch 둘 다 사용 가능 2. Embeddings and Language Models 자연어 처리에서 실제 input은 단어이지만, 딥러닝에서는 벡터임 단어를 벡터로 어떻게 바꿀까.. 2022. 5. 17.
[5주차] 14장 정리 14장은 점진적인 개선을 보여주는 명령행 인수 구문분석기에 대한 사례 연구를 다룬다. 프로그램을 짜다 보면 종종 명령행 인수의 구문을 분석할 필요가 생긴다. 편리한 유틸리티가 없다면 main 함수로 넘어오는 문자열 배열을 직접 분석하게 된다. 내 사정에 딱 맞는 유틸리티가 없다면 직접 짜게 되는데, 이렇게 새로 짜게 될 유틸리티를 Args라 칭하며 아래 내용을 읽어보도록 한다. Args에 대하여 Args는 기본적으로 생성자에 입력으로 들어온 인수 문자열과 형식 문자열을 넘겨 Args 인스턴스를 생성한 후 Args 인스턴스에다 인수값을 정의한다. public static void main(String[] args) { try { Args arg = new Args("l,p#,d*", args}; boole.. 2022. 5. 17.
[4주차] 클린코드 11~13장 정리 11장. 시스템 높은 추상화 수준(= 시스템 수준)에서도 깨끗함을 유지하는 방법 시스템 제작과 시스템 사용 분리하기 ✅ SW시스템은 준비과정과 런타임 로직을 분리하라 ✅ 시작단계를 분리하라 설정 논리는 일반 실행 논리와 분리해야 모듈성↑ 주요 의존성 해소를 위해 전반적이고 일관적인 방식 필요 Main 분리: 생성과 관련한 코드는 모두 main 혹은 main이 호출하는 모듈로 이동 팩토리 사용: 객체 생성 시점을 애플리케이션이 통제해야할 경우 사용 의존성 주입: 한 객체가 맡은 보조 책임을 새로운 객체에게 전적으로 떠넘기는 **제어 역전 기법(Inversion of Control, IoC)**을 의존성 관리에 적용 확장 ‘처음부터 올바른’ 시스템 제작은 어렵다. 대신 사용자 스토리의 변화에 따라 시스템을 .. 2022. 5. 17.