한국소프트웨어산업협회(KOSA)와 정보기술ISC가 주관/주최한 공모전의 심사위원으로 참석하고 왔습니다.
전국의 고등학생을 대상으로 하는 소프트웨어 개발 공모전입니다.

대한민국 고등학생 소프트웨어 개발 공모전
 - Software FUTURE&DREAM Challenge 2024

 

심사위원석

총 12개의 팀이 본선에 진출했습니다 - 한국소프트웨어산업협회 공지
제출된 소스코드와 발표 자료를 살펴보고 질문과 조언할 내용들을 정리해 두었는데, 잡학하게 알고 있던 지식들이 도움이 많이 되었습니다.
얼마 전 Google에서 진행했던 Machine Learning Bootcamp에서의 경험도 심사에 활욯할 수 있었다면 좋았을텐데, 그 정도의 작품은 없어서 조금 아쉽네요.
많은 지식과 조언을 전달하고 싶었는데, 질의응답 시간이 짧아서 충분히 전달을 못드린게 못내 아쉽습니다.
 
저의 고등학생 시절을 생각하면, 다들 수준이 높아서 굉장히 놀라웠습니다.

 - 그 때의 저는, 컴퓨터로는 게임밖에 할 줄 몰랐는데 말이죠..

SW 개발에 대한 접근성이 많이 좋아진 것에 학생들의 노력이 더해지면서, 발표만 듣는다면 학부생 이상의 프로젝트라고 생각이 들 정도의 작품들도 있었습니다.
 
작품 준비하느라 고생한 학생들에게 박수를 드립니다.
특별한 경험을 할 수 있게 해주신 한국소프트웨어산업협회에도 감사 인사를 드립니다.
 

지난 10/18일, Google for Developers Machine Learning Bootcamp의 졸업식을 끝으로 활동이 마무리 되었습니다.

 

굿즈를 받겠다고 밤새워 코세라 강의를 들은게 얼마 안된 것 같은데 벌써 3개월이 지났네요.

악착같이 굿즈를 수집했습니다. 뿌듯하네요.

오랜만에 했던 스터디도 즐거웠습니다.

 

GMLB 굿즈

 

ML의 최신 기술이나 동향의 경우, 많은 분들이 많은 포스트를 작성하고 계시지만,

'나중에 공부해야지' 라며 읽지않고 미뤄둔 것이 너무 많았는데요,

회사 업무가 바쁘기도 하고, 애매하게 짬이나면 휴식을 갖느라 좀처럼 공부를 못하고 있었습니다.

 

좋은 타이밍에 접한 Google MLB 덕분에,

간의 강제성을 얻어서 공부할 수 있었고, Kaggle과 LLM fine-tuning도 경험할 수 있었습니다.

 

오랜만에 스터디를 하다보니,

제가 처음 공부할 때보다 정말 많은 라이브러리가 만들어져 있었고, GPU를 이용한 학습이 훨씬 빨라져 있었습니다.

tensorflow 셋업은 더 힘들어졌네요...

 

저는 간간이 kaggle을 해보거나, fine-tuning 할만한 아이디어가 있으면 해보면서,

부트캠프의 경험을 소소하게 이어보려고 합니다.

 

개인적으로는, 강의 등을 통한 지식 쌓기 보다는 kaggle 등을 통한 경험 쌓기가 더 많았던 것 같아서, ML 분야를 경험하고 싶은 분들이 참여하는게 더 좋을 것 같습니다.

내년에도 진행할 것 같은데, 많은 분들이 지원해 보시면 좋을 것 같아요.

현직자들의 회사 소개나 ML에 대한 생각, 팁 등을 공유하는 시간도 빈번하게 있어서, 여러모로 도움이 될 것 같습니다.

 

한 해가 마무리 되어가는 중에, 즐겁고 값진 경험을 쌓을 수 있어서 좋았습니다.

GMLB 졸업식

아는 만큼 보이는 AI - 표지

 

아는 만큼 보이는 AI - 표지와 내용

 

AI 발전 추세를 간략히 살펴보기 좋은 책입니다.

기반 기술도 굉장히 단순화해서 설명하기 때문에 전공 지식이 없어도 읽기에 지장은 없어 보입니다.

반대로, 기술서가 아닌만큼 전문 지식을 쌓기 보다는 AI 트렌드를 간단하게 살펴보기 좋은 책입니다.

 

책은 크게 4가지 Chatper로 분류됩니다.

  • Chapter 1 - AI, 어디까지 발전했나: 대표적인 AI 기술 소개
  • Chapter 2 - AI, 어떤 원리로 학습하나: AI 모델을 학습시키는 법
  • Chapter 3 - 생성형 AI란 무엇인가: 생성형 AI의 작동 방식
  • Chapter 4 - AI, 어떻게 사용될까: 주요 기업의 AI 활용 사례

Chapter 1에서는 AI 서비스의 추세를 설명합니다.

람다(LaMDA), 달리(DALL·E), 알파폴드(AlphaFold), ChatGPT 등 다양한 AI 기술/서비스에 대해서 설명하는데요,

기존에 있던 AI 서비스와 어떤 차이가 있는지, 어떻게 발전했는지를 얘기합니다. (예, 미드저니 vs. 달리)

서비스 이름(ChatGPT)과 기술/모델(GPT-3.5, GPT-4)을 혼용하는 부분은 조금 아쉽습니다.

 

Chapter 2에서는 AI 학습에 대해 간략히 설명합니다.

학습(Training)이 무엇인지, 학습 데이터 양, 편향, 과적합 등에 대해서도 사람에 빗대어서 잘 설명합니다.

읽다보면 '설명 재밌게 잘하네' 라는 생각이 듭니다.

 

Chapter 3에서는 챗봇을 기준으로 생성형 AI에 대해 간략히 설명합니다.

과거 검색 기반 챗봇과 생성형 AI를 사용한 생성 기반 챗봇의 차이를 들어서 설명하는데요,

특히, 생성형 AI의 학습, 추론, 답변 방식에 대해서 굉장히 단순화해서 설명합니다.

'생성형 AI는 답변할 때의 과정이 이런 느낌이구나' 정도로 이해하기는 좋을 것 같습니다.

 

Chapter 4에서는 몇몇 기업의 AI를 이용해서 추천/분류하는 서비스에 대해서 설명합니다.

각 AI 모델에 대한 설명이 각 서비스의 실제 AI 모델의 학습 및 서비스 방법을 설명했다기 보다는,

그러한 AI 모델을 일반적으로 만들어볼 수 있는 방식에 대한 설명이므로 오해하지 않으면 좋을 것 같습니다.

그러나, 좋은 설명으로 보입니다.

 

AI 트렌드를 살펴보기 좋은 책인 것 같고,

일부 전문 용어도 간단하게 설명하는 만큼 AI가 궁금한 사람이 쉽게 살펴보기 좋은 책인 것 같습니다.

 

❕ 길벗 출판사의 개발자 리뷰어에 선정되어 도서를 제공받았습니다.

읽기 쉽고 코드 리뷰하기 좋은 코드 작성 가이드 - 표지

 

 

가독성이 좋은 코드 작성 방법에 대해 설명한 책입니다.

근래에 뉴스에 자주 언급되던 그 회사, LINE(현재 라인야후)의 개발자가 작성한 책이네요!


이 책은 LINE(현 라인야후) 개발자가 작성했다고 해서 어떤 책일지 조금 더 궁금하기도 했는데요,
책에서 저자는 네이밍, 주석, 함수 분할, 의존성 등 다양한 부분에 대해서 코딩 가이드를 권장하고 있습니다.


다른 여러 개발 방법론을 다룬 서적이 그러하듯, 적용하면 좋겠지만 레거시 코드가 함께 남아있는 프로젝트에는 적용하기 어려운 내용도 많이 포함되어 있습니다.

코드의 가독성과 유연성을 높이는 많은 방법 중 아마도 저자가 개발 업무를 하면서 중요하다 생각한 정보들을 알차게 채운 것 같습니다.


한 가지 아쉬운 점은 책에서 예시로 사용하는 언어가 코틀린으로 되어있다는 것인데요,

코틀린을 모르는 사람은 예시를 보는게 조금 답답할 것 같습니다.


저자도 이를 염려했는지 부록으로 필요한 코틀린 문법을 간략하게 설명하기도 합니다.
차라리 예시를 pusedo code로 작성하는 식으로 했다면, 조금 더 많은 독자가 쉽게 읽히지 않을까 합니다.
 - 가령 열거형(enum)을 다루는 예시 코드에서 when 대신 switch-case를 사용하는 -

책은 권장 내용을 올바르게 적용한 좋은 예시와 잘못 적용한 나쁜 예시를 함꼐 다루고 있습니다.
몇 가지 안티패턴과 그 개선방안도 같이 언급하고 있어서, 예제를 통해 직관적으로 이해하기 좋은 편입니다.
아무래도 실무 개발자가 다년간의 경험을 바탕으로 선정한 방법들이기 때문에 조금더 실무 적용에 가깝지 않을까 생각합니다.

또한, 책에서 저자는 코드 리뷰에 임하는 자세에 대해서도 짧은 챕터로 언급하는데요,

이 부분은 특히 들이 알면 좋을 것 같았습니다.
책에서 언급된 방법들을 모두 적용할 수 있다면 굉장히 좋겠지만, 어쩔 수 없이 타협하게 되는 부분이 있다보니 이러한 책을 읽을 때마다 매번 반성만 하는 것 같네요😂.

모두의 네트워크 기초 - 표지

 

근래에 책을 한 권 읽었습니다.

네트워크 공부 시작하기에 괜찮은 책이었는데요.

 

저자는 책의 머리말에서 타겟 독자를 다음과 같이 얘기했습니다.

📌 네트워크를 처음 배우는 학생

📌 IT 분야에서 업무를 담당하고 있는 개발자 혹은 시스템/솔루션 운영자

📌 네트워크 분야에서 일하고자 하는 사람

 

다만, 제 생각에는 개발자 및 시스텝/솔루션 운영자라면 알고있을 내용일 것 같고,

네트워크 개념을 공부하는 초심자를 위한 서적으로 적합할 것 같습니다.

네트워크 전반에 대해서 가볍게 서술되어 있고 그림도 함께 제공해서 쉽게 읽히고 부담도 안되는데요,
독자에게 이야기하듯 서술되어 있는 것도 좋은점 같습니다.

네트워크 하면 가장 쉽게 언급되는 OSI 7계층의 각 계층별 역할도 가볍게 짚어주는 것도 좋았는데요,
저는 통신 네트워크 석사이다 보니 오히려 너무 가벼운 내용만 있는 것 같은 기분도 받았습니다.
책의 이름에서 알 수 있듯이 이 책은 기초를 다루고 있기 때문에, 실무적인 내용은 다른 서적도 참고하는 것이 좋을 것 같습니다.

만약 저의 주변 사람이 네트워크 공부를 시작하겠다고 한다면,

이 책으로 시작하라고 할만큼 기초 서적으로는 굉장히 적합해 보입니다.

 

 

대규모 C++ I편: 절차와 아키텍처 - 표지

 

길벗 출판사에서 진행하는 도서 리뷰 이벤트에 당첨되어서 도서를 받았습니다.

C++기반의 대규모 프로젝트를 위한 기술서라니!

 

이 책은 C++의 문법이나 고급 trick 같은 것을 설명하는 책은 아닙니다.

C++ 기반의 library/application 프로젝트를 구축하는데 있어서 고려해야 하는 것들을 소개하는 책이었습니다.

소개하는 설계 방법론은 C++ 외의 컴퓨터 언어에서도 사용할 수 있겠으나, 예시 설명이 C++ 기반이기 때문에, C++을 전혀 모른다면 읽기 어려울 수 있어 보입니다.

 

C++ 프로그램을 만드는데 있어서 나타날 수 있는 문제들("나쁜 아이디어")을 소개하고, 그러한 문제들을 해결하기 위한 (유일한 답은 아니겠지만, 상당히 합리적인) 방법들도 같이 소개합니다.

 

책에서 저자는

 📌 C++의 프로그램의 빌드(컴파일 및 링크)에 대한 개념과 내부 동작,

 📌 그로 인해 나타날 수 있는 문제들,

 📌 그러한 문제들을 해결하기 위한 방법을 소개합니다.

 

또한, C++은 자유도가 상당히 높기 때문에 계획 없이 구현하면 스파게티 코드가 되기 쉬운데, 관리가 나빠질 수 있는 경우와 그것들을 방지하기 위한 가이드도 함께 소개합니다.

 

특히, 저자는 나쁜 아이디어라는 이름으로, 문제 상황이 적용된 적절한 예시를 보여주면서, 독자가 최대한 쉽고 직관적으로 문제상황을 인식할 수 있게 해줍니다. 읽다 보면 '아, 그렇지. 이렇게 하면 안되지' 라는 생각이 절로 듭니다.

 

책에서 저자는 지향하는 설계 방법론의 당위성과, 필요한 정보들을 거의 모두 제공하고 있는 것 같습니다.

이 책만 참고하면 저자가 지향하는 설계 방법론을 온전히 재현해낼 수 있을 것 같습니다.

(II편과 III편은 필요합니다 😂)

 

한편, 여러 팀이 여러 라이브러리를 구축하고 통합된 최종 application을 만들어내는 정도의 대규모 프로젝트에서 발생할 수 있(다고 생각이 드)는 문제들도 소개하고 있는데, 저는 간단히 훑어만 보았습니다.

공감이 많이 되지 않는 부분이어서, 그런 내용이 있었다는 것만 알아두고 필요할 때 찾아보려고 합니다.

 

C++은 다른 많은 언어가 제공하는 import 대신 #include 라는 것을 사용합니다.

#include는 copy & paste 동작인 샘인데, 많은 C++ 입문자 또는 주니어 개발자분들은 잘 모르고 반사적으로 사용합니다. 이전 회사의 동기들이나 동료분들도 그러했는데요,

이 책에서는 static, extern, 그리고 inline 등 C++의 다양한 키워드가 컴파일 타임, 링크 타임에 어떤 영향을 주는지도 소개합니다.

 

이러한 키워드들은 보통 경험적으로 사용할텐데요, 경험적인 사용은 통상 성공적인 사용을 토대로 하기 때문에, 잠재적 위험 요인이 무엇이 있는지를 모르고 사용하는 단점이 있습니다.

이제 이 책을 통해 컴파일/링크 동작을 이해한다면, 각 키워드가 어떤 영향을 주는지 알고 사용할 수 있습니다.

저는 C/C++을 접한지는 13년이 넘었고, 연구/실무하면서 사용한지는 8년이 넘은 것 같습니다.

개인적으로 이것저것 많이 찾아보고 테스트해보는 편이었는데도 새롭게 알게 된 것들이 매우 많았습니다.


책에서 저자는 대부분을 C++ 표준에 기반하여 설명하므로, 정의되지 않은/보장하지 않는 동작에 대한 지식도 얻어갈 수 있었고, 몰랐던 부분들도 C++ 표준과 컴파일러의 동작에 기반해서 상세히 설명되어 있어서 읽는 동안 재미있었습니다.

 

 

openAI의 sora가 시끌벅적 하네요.

8년쯤 전에 딥러닝 교육을 들었었어요.
당시 모 연구실에서 구글의 이미지 인식률을 넘기기 위해 여러 방식으로 튜닝을 해본 결과,
인식률을 다소 높일 수는 있었지만 압도적인 학습량을 이길 수는 없었다는 결론이었지요.

요새 현황을 보면 그 생각이 계속 납니다.
튜닝만으로는 넘기지 못하는 벽이 있어 보입니다.
Transformer의 등장같은 알고리즘의 변화가 없다면, 자원의 힘을 능가하기는 어려울 것 같습니다.

Sora: Creating video from text

The current model has weaknesses. It may struggle with accurately simulating the physics of a complex scene, and may not understand specific instances of cause and effect. For example, a person might take a bite out of a cookie, but afterward, the cookie m

openai.com

Meta Quest 2 - Virtual Desktop

 

Meta Quest의 Virtual Desktop을 이용해 맥북을 사용해 보았습니다.

화면 위치를 하늘 방향으로 놓으면, 누워서 볼 수 있는 모니터가 생기는데요,

해상도도 나쁘지 않아서 사용하기 좋은 것 같습니다.

 

저는 PC를 할 때 자세가 굉장히 나쁜편이라 허리나 목이 자주 아팠는데,

누워서 하니 너무 좋네요, 애용해야겠습니다.

 

VR/AR 이 엔터테인먼트 외에는 용도가 없을 것 같았는데,

Apple Vision pro 사용 영상을 봐도 그렇고, 상당히 삶을 윤택하게 하는데 여러 도움이 될 것 같네요.

 

Apple vison pro는 너무 비싸서😂, 저는 다음 제품을 기다려 봐야겠습니다.

Galaxy Watch6
Galaxy Watch6

생일선물로 리아님이 Galaxy Watch6를 주셨습니다.
예쁘당..

10년을 썼던 Galaxy Gear S3 Classic은 이제 보내주어야겠습니다.

Galaxy Gear S3 Claasic과 Galaxy Watch6

안녕 Galaxy Watch6
안녕 Galaxy Gear S3

 



지난 11월 3일, 'Software FUTURE&DREAM Challenge 2023'의 본선 심사를 하고 왔습니다.

React를 기반으로 한 web 개발이 많았고, PWA나 web-view를 이용해 나름대로(?) 앱으로 만든 팀도 있었습니다.
대회 준비 기간이 짧았을 것을 생각하면, 좋은 접근이었던 것 같습니다.

일부 ChatGPT를 연동한 서비스를 만든 팀들도 있었는데요,
정보의 가공/분석을 ChatGPT 등 생성형 AI에 맞길 수 있게 되면서, 확실히 어떤 서비스 개발은 용이해진 것도 같습니다.

심사하고 있자니, 저도 뭔가 만들고 싶어지는 좋은 시간이었습니다.

'일상 > IT-SW' 카테고리의 다른 글

openAI - Sora  (0) 2024.02.16
Meta Quest 2 - Virtual Desktop  (0) 2024.02.16
제 4회 한국코드페어 - SW 공모전 심사위원  (0) 2022.11.01
인증 실패시 http status code  (0) 2022.10.28
Samsung Software Developer Conference  (0) 2022.10.28

+ Recent posts