1D1S 시즌2 한 달 회고
회고2024. 2. 2. 15:061D1S 시즌2 한 달 회고

2023/10/25 글입니다. 벌써 한달이나?시간이 빠르다.1D1S가 시작된 지 벌써 한 달이 지났습니다. 26일에 들어온 새로운 멤버까지 총 45명이 1D1S 챌린지를 진행중이며, 다들 열심히 일기를 작성해주시고 계십니다. 10월 1일이 엊그제 같은데 벌써 이렇게 많은 일기가 쌓였다는게 조금은 신기합니다. ▼  하지만 시험기간이…그러나 하나 생각하지 못한 부분이 있었는데, 바로 시험기간이었습니다. 이번에도 너무나도 제 위주로 생각을 하여 시험기간에 활동이 저조해진다는 사실을 알아차리지 못했습니다. 시험기간에 공부하다가 잠깐 일기를 쓰거나, 다음날 쓰면 된다고 생각을 하여 학기 중간에 시작을 했는데, 생각보다 일기를 작성하는게 쉽지 않았던 것 같았습니다. 아무래도 이런 저런 해야할 일들이 쌓이게 되면, ..

1D1S 시즌2 2주차 회고
회고2024. 2. 1. 16:071D1S 시즌2 2주차 회고

모집엄청나게 많은 사람들이 모였다.1D1S 시즌2는 9/27부터 모집을 받기 시작하여, 챌린지 시작 2주까지 총 43명의 인원이 모였습니다. 시즌1 때 인원이 19명이었던걸 생각하면, 인원이 2배 보다도 더 많이 모이게 되었습니다.저를 중심으로 모였던 시즌1과는 다르게 시즌2는 시즌1때 참여했던 분들의 지인 혹은 아무 접점 없이 공고를 보고 찾아오신 분들이 상당수 많아졌습니다.사적 모임의 수준에서 이제 공적인 모임으로 탈바꿈하게 된 것입니다. ▼  그런데 학교의 상태가…?인원이 많이 모인것은 좋지만, 조금은 아쉬운 부분은 제가 홍보를 허술하게 한 탓에 ‘여러 학교 사람들이 모여 진행하는 챌린지’라는 본 취지를 지키지 못한 것입니다.아무래도 제가 홍익대학교에 재학중이다 보니 홍익대학교 위주의 커뮤니티에만 ..

1D1S 시즌1 회고와 피드백
회고2024. 2. 1. 15:551D1S 시즌1 회고와 피드백

이 글은 2023/09/08에 1D1S 시즌1의 뒷풀이겸 활동이 어땠는지 설문을 받은 내용을 읽기 좋게 글로 옮겨놓은 것입니다. 1D1S 활동을 직접한 멤버들의 활동에 대한 전체적인 감상부터 시스템 사용성에 대한 문제점, 개선방안, 사용성, 그리고 시즌2에서 바라는 점에 대한 내용이 담겨있습니다.  1D1S 자체의 감상동기부여가 된다 가장 첫번째로 멤버들에게 했던 질문은 ‘1D1S의 전체적인 감상은 어땠는지’였습니다. 좋았던 점, 문제점 그런 세부적인 내용이 아닌, 1D1S에서 주는 인상이 어땠는지에 대해 물어보았습니다. 그 중에서 가장 많이 나왔던 답변은 동기부여가 되는 느낌이었습니다. 1D1S에 속해있는 것 만으로도 무언가를 하고 있다는 느낌, 시간을 헛되이 보내고 있지 않다는 느낌을 받게 된다고 했..

[Flutter] FutureBuilder로 비동기 화면 그리기 (feat.GetX)
Develop/Flutter2024. 2. 1. 00:55[Flutter] FutureBuilder로 비동기 화면 그리기 (feat.GetX)

Future 데이터들 다루기 너무나도 까다로운 Future 추천 정보 비동기를 잘 모른다면 간단하게 이해하고 보는걸 추천합니다. 동기와 비동기 개론 -> Dart 비동기 프로그래밍 찍먹 -> Future 변수들을 사용하여 비동기 작업을 하다보면 가장 힘든 부분이 화면에 그려주는 부분이다. 데이터가 바로 들어온다고 가정하고 화면을 그리게 되면 빨간색 에러 화면을 마주하기 쉽상이다. 데이터가 완성되는게 아무리 빠르다고 해도 화면을 그리는 부분이 별도의 장치가 없다면 선행되기 때문에 에러가 쉽게 발생한다. 데이터가 들어오는걸 기다리는 동안에… 상태관리로 전부 처리하자 그렇기에 데이터가 들어오는것을 기다리며 그 동안에는 로딩 화면을 보여주거나 빈 화면을 보여줘야 하는데, Stateful Widget이나 GetX..

[Flutter] Dart의 Single Quote와 Double Quote
Develop/Flutter2024. 1. 31. 15:44[Flutter] Dart의 Single Quote와 Double Quote

Dart의 String 문법 다른 언어들은 안이러는데 Flutter는 Dart언어를 사용하기에 대부분 Dart를 사용하지 않다가 Flutter를 사용하기 위해 사용하게 되었을 것이다. 조금 범용적으로 사용되는 JAVA나 Python, C++ 와 같은 언어들에 익숙해져있다가 Dart로 오게 되면 한가지 의문점이 생기게 된다. 바로 문자열을 “”(큰 따옴표, Double quote) 로 감싸는게 아니라 ‘’ (작은 따옴표, Single quote) 로 감싸기 때문이다. Dart의 String 문법 Dart에서는 아래와 같이 문자열을 작성할 수 있다. String singleQuote = '안녕하세요. 고라니입니다.'; String doubleQuote = "안녕하세요. 고라니입니다."; 두 문자열에 차이가 ..

13. Use Case Realization
CS/소프트웨어 공학2024. 1. 31. 15:3413. Use Case Realization

Use Case Realization Design 단계에서는 use case diagram그리는 것과 Step By Step Description을 만드는 작업까지 했다. 그러나 Use Case 만으로는 코드 만드는것을 할 수는 없다. 코드를 위한 최종 목표는 Class Diagram이며, 그 중에서 제일 중요한 것은 Public Function들이 정의되는 것이다. 이는 Communication Diagram을 통해 만들어지는 Design Class Diagram이 만들어지면 해결이 된다. 그런데 Use Case Diagram에서 바로 Class Diagram으로 바로 넘어갈 수 없다. Communication Diagram을 거쳐야 Class Diagram을 만들 수 있다. 커뮤니케이션 다이어그램까지..

12. Configuration and Version Management
CS/소프트웨어 공학2024. 1. 31. 15:1912. Configuration and Version Management

Configuration management (CM) 변하는 소프트웨어를 관리하는 모든 프로세스와 툴을 CM이라고 한다. 파일을 사람이 직접 복사하고 옮기고 하는 걸로는 전체를 관리하기 힘들기에 소프트웨어를 관리하는 소프트웨어를 통하여 전체를 관리한다. System building 다 모아서 하나의 통합된 시스템을 만드는 것을 말한다. 모든 컴포넌트를 모아서 최종적인 바이너리 코드가 나오면 된다. Change management 버그 제거와 같은 요청들을 추적하고 관리한다. Release management 외부에다가 출시하는 것을 말한다. 버전이 여러개 나오는데 그걸 다 출시 하진 않고, 그 중에서 무엇을 출시 할 지를 정한다. 아래의 과정 전체가 CM이다. ▼ Multi-version systems ..

11. 다형성(Polymorphism) 예제
CS/소프트웨어 공학2024. 1. 31. 01:5911. 다형성(Polymorphism) 예제

다형성(Polymorphism) 예제 Deer 클래스 Deer 클래스를 아래와 같이 정의해보자. ▼ class Deer { private: char name[10]; // 사슴 이름 int age; // 사슴 나이 double weight; // 사슴 무게 double height; // 사슴 키 public: Deer(const char* name, int age, double weight, double height, double antlersLength); // 생성자 char* getDeerName() const; // 사슴 이름 getter int getDeerAge() const; // 사슴 나이 getter double getDeerWeight() const; // 사슴 몸무게 getter d..

10. 객체 지향 프로그래밍 (Object-Orientation Programming)
CS/소프트웨어 공학2024. 1. 31. 01:5010. 객체 지향 프로그래밍 (Object-Orientation Programming)

객체 지향 프로그래밍 (Object-Orientation Programming) 지금까지 배운 객체지향 프로그래밍은 대체로 C++ 문법에 대한 내용, 그 중에서도 상속에 대한 C++ 문법이었다. C++ 뿐만 아니라 JAVA와 같은 대표적인 OOP 프로그래밍 문법들도 배웠을 것이다. 그러나 이번에는 문법을 배우는 것이 아니라, 실제 소프트웨어 개발에 어떻게 적용되는지를 배울 것이다. 소프트웨어를 개발하는 이상적인 방법 인터페이스 컴퓨터(하드웨어)를 생각해보자. 컴퓨터를 한 회사에서 처음부터 끝까지 다 만들지는 않는다. 삼성에서 만든 컴퓨터의 스펙을 보면 아래와 같지만, 이 모든 부품을 삼성에서 다 만든 것이 아니다. 다른 회사들이 만든걸 모아서 만든 것이다. 그런데 굉장히 신기하게도 각 부품들을 다 다른 ..

System Call
CS/운영체제2024. 1. 31. 00:07System Call

개요 System Call 이란? System Call은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 정말 간단하게 다시 말하자면, System Call은 커널에 접근하기 위한 수단 혹은 도구 이다. 그렇다면 우리는 커널에 왜 접근해야하는지를, 그리고 커널에 접근하는 수단과 도구가 따로 만들어진 이유를 알면 System Call에 대해 이해할 수 있다는 것이다. System Call이 필요한 이유 커널에 왜 접근해야할까? 우리가 일반적으로 쓰는 프로그램들은 OS, 시스템의 힘을 빌려서 만들어진다. 유저 레벨의 함수들로는 고차원적인 동작을 하는 프로그램을 만드는게 사실상 불가능하다. 그렇기에 커널(kernel)의 도움을 반드시 받아야 한다...

image