Algorithm

백준 알고리즘 1026 보물 | Baekjoon Algorithm 1026 Treasure

이번 학기부터 알고리즘 스터디 Imergoroup을 시작했습니다!매주 3개 문제를 풀며 화,목,토 마다 업로드 할 예정입니다.사실 지금 화요일에 푼 문제 1415를 아직도 해결을 못하고 있는상태입니다ㅠㅜ 일단 이번 목요일 과제였던 1026번 문제 경험을 공유합니다.https://www.acmicpc.net/problem/1026 1026번: 보물첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.www.acmicpc.net 아이패드를 이용해서 이래저래 끄적거리는 기록도 공유하려합니다. 처음 문제를 보고 든 생각은 그냥a 배열..

백준 알고리즘 1026 보물 | Baekjoon Algorithm 1026 Treasure

728x90

이번 학기부터 알고리즘 스터디 Imergoroup을 시작했습니다!

매주 3개 문제를 풀며 화,목,토 마다 업로드 할 예정입니다.

사실 지금 화요일에 푼 문제 1415를 아직도 해결을 못하고 있는상태입니다ㅠㅜ

 

일단 이번 목요일 과제였던 1026번 문제 경험을 공유합니다.

https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.

www.acmicpc.net

 

아이패드를 이용해서 이래저래 끄적거리는 기록도 공유하려합니다.

 

처음 문제를 보고 든 생각은 그냥

a 배열은 순방향 정렬, b 배열은 역방향 정렬을 한 후에 그 둘을 더하면 되는게 아닌가?

라는 생각이 들었습니다.

 

그러나 백준의 조건으로 배열 B를 재정렬하지 말라고 해서 살짝 당황했는데 
혹시 이 조건을 무시하고 제출했을 때 되나? 하고 해봤는데 됩니다!ㅋㅋㅋ

 

다른 분들 블로그를 찾아보는데도 다들 이 방식으로 풀어서 띠용했네요!

 

같이 스터디하는 분 생각에 따르면

재배열하지 말라고는 했지만 재배열 안된 B에 A를 끼워맞춰서 넣는거나
A는 오름차순(또는 내림차순) B는 내림차순(또는 오름차순) 으로 하는거나
덧셈의 교환법칙에 의하면 결국 같은 결과니까 막지 않는 것 같다고 하셨습니다

 

https://github.com/mjung1798/algorithm_Java

 

mjung1798/algorithm_JAVA

JAVA algorithm study. Contribute to mjung1798/algorithm_JAVA development by creating an account on GitHub.

github.com

package com.jyami;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Main_1026 {


    public static void main(String args[]) {

        Scanner scanner = new Scanner(System.in);
        int arrSize = scanner.nextInt();
        List<Integer> a = new ArrayList<>();
        List<Integer> b = new ArrayList<>();
        int sum = 0;

        for (int i = 0; i < arrSize; i++) {
            a.add(scanner.nextInt());
        }

        for (int i = 0; i < arrSize; i++) {
            b.add(scanner.nextInt());
        }

        a.sort(Comparator.naturalOrder());
        b.sort(Comparator.reverseOrder());

        for (int i = 0; i < arrSize; i++) {
            int mult = a.get(i) * b.get(i);
            sum += mult;
        }

        System.out.println(sum);

    }

}

Starting this semester, I kicked off an algorithm study group called Imergoroup!

We solve 3 problems per week and plan to upload on Tuesdays, Thursdays, and Saturdays.

To be honest, I still haven't been able to solve problem 1415, which was Tuesday's assignment ㅠㅜ

 

For now, let me share my experience with problem 1026, which was this Thursday's assignment.

https://www.acmicpc.net/problem/1026

 

Problem 1026: Treasure

The first line contains N. The second line contains N numbers in array A in order, and the third line contains the numbers in array B in order. N is a natural number less than or equal to 50, and each element of A and B is a non-negative integer less than or equal to 100.

www.acmicpc.net

 

I also want to share my scribbled notes from my iPad.

 

My first thought when I saw the problem was simply:

Can't I just sort array A in ascending order and array B in descending order, then add them up?

That's what came to mind.

 

However, the problem on Baekjoon says not to rearrange array B, which threw me off a bit.
I tried submitting while ignoring that condition, and guess what — it worked! lol

 

When I looked at other people's blogs, everyone solved it the same way, which was surprising!

 

According to one of my study group members,

even though it says not to rearrange B, fitting A into the non-rearranged B, or
sorting A in ascending (or descending) order and B in descending (or ascending) order —
by the commutative property of addition, the result is the same, so they probably don't bother blocking it.

 

https://github.com/mjung1798/algorithm_Java

 

mjung1798/algorithm_JAVA

JAVA algorithm study. Contribute to mjung1798/algorithm_JAVA development by creating an account on GitHub.

github.com

package com.jyami;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Main_1026 {


    public static void main(String args[]) {

        Scanner scanner = new Scanner(System.in);
        int arrSize = scanner.nextInt();
        List<Integer> a = new ArrayList<>();
        List<Integer> b = new ArrayList<>();
        int sum = 0;

        for (int i = 0; i < arrSize; i++) {
            a.add(scanner.nextInt());
        }

        for (int i = 0; i < arrSize; i++) {
            b.add(scanner.nextInt());
        }

        a.sort(Comparator.naturalOrder());
        b.sort(Comparator.reverseOrder());

        for (int i = 0; i < arrSize; i++) {
            int mult = a.get(i) * b.get(i);
            sum += mult;
        }

        System.out.println(sum);

    }

}

댓글

Comments

Daily/About Jyami

Dev Log

대학교 2년반동안 코딩을 하나도 모르던 학부생에서 지금에 이르기 까지 저의 활동 내역들을 이번에 준비한 포트폴리오 대회를 이용해서 처음부터 끝까지 살펴볼 수 있었습니다.포트폴리오 대회를 이용해서 정리한 저의 자료(수업 과제 레포트, 각종 행사 기록)을 조금씩 공유하려고합니다. 저의 포트폴리오 상세입니다. From being an undergrad who knew absolutely nothing about coding for two and a half years of college to where I am now — this portfolio competition I prepared for gave me the chance to look back on everything from start to fin..

Dev Log

728x90

대학교 2년반동안 코딩을 하나도 모르던 학부생에서 지금에 이르기 까지 저의 활동 내역들을 

이번에 준비한 포트폴리오 대회를 이용해서 처음부터 끝까지 살펴볼 수 있었습니다.

포트폴리오 대회를 이용해서 정리한 저의 자료(수업 과제 레포트, 각종 행사 기록)을 조금씩 공유하려고합니다.

 

저의 포트폴리오 상세입니다.

 


 

From being an undergrad who knew absolutely nothing about coding for two and a half years of college to where I am now — 

this portfolio competition I prepared for gave me the chance to look back on everything from start to finish.

I'm planning to gradually share the materials I organized for the portfolio competition (class assignment reports, records from various events).

 

Here are the details of my portfolio.

 


 

댓글

Comments

Daily/Code Fest

[DSC Lead] - google Korea 방문기 & DSC Lead onBoarding | [DSC Lead] - Visiting Google Korea & DSC Lead Onboarding

GDG, 즉 Google Developer Groups에 대해서 아시나요?DSC를 간단하게 말하자면 GDG의 대학생 버전이라고 할 수 있을 것 같습니다!! onboarding에서 듣기로는 구글은 개발자와 커뮤니케이션하는 것을 중요시 여긴다고 합니다. 그래서 구글에서는 아래와 같이 개발자 커뮤니티 형성을 위한 프로그램을 진행 중입니다.- Women Techmakers- Google Developer Groups- Google Developers Experts- Developer Student Clubs 그중에 DSC는 Developer Student Clubs의 약자로! 저는 올해 DSC lead at Korea로 선정돼서 저희 학교 및 한국을 대표한 DSC Ewha Womans로 활동할 예정입니다. 자 ..

[DSC Lead] - google Korea 방문기 & DSC Lead onBoarding | [DSC Lead] - Visiting Google Korea & DSC Lead Onboarding

728x90

 

GDG, 즉 Google Developer Groups에 대해서 아시나요?

DSC를 간단하게 말하자면 GDG의 대학생 버전이라고 할 수 있을 것 같습니다!!

 

onboarding에서 듣기로는 구글은 개발자와 커뮤니케이션하는 것을 중요시 여긴다고 합니다. 그래서 구글에서는 아래와 같이 개발자 커뮤니티 형성을 위한 프로그램을 진행 중입니다.

- Women Techmakers

- Google Developer Groups

- Google Developers Experts

- Developer Student Clubs

 

그중에 DSC는 Developer Student Clubs의 약자로! 저는 올해 DSC lead at Korea로 선정돼서 저희 학교 및 한국을 대표한 DSC Ewha Womans로 활동할 예정입니다.

 

자 그러면 저의 DSC lead in Korean 활동 google korea에서의 onboarding을 포스팅하도록 하겠습니다.

 

0. 목차

- Google Intro.

- Welcoming Speech by Erica Hanson (DSC Program Manager)

- DSC 소개

- 점심식사 @Google Cafe Maru

- 구글 코리아 오피스 투어

- 네트워킹 & 아이스브레이킹

- DSC 워크샵 (비전&로드맵 설정)

 

1. Google Intro

DSC의 시작을 알리는 듯한 느낌의 티셔츠!

 

처음 도착하니 Devloper Student Clubs 문구의 티셔츠가 준비되어 있었습니다! 그리고 직원이 아니면 들어갈 수 없기에 Guest 방문증과, DSC Ewha Womans라고 저의 소속 학교가 명시된 명찰이 있었습니다.

 

일단 기본적인 DSC KR의 목표는 학교 내 개발자 커뮤니티를 형성하는 것으로, DSC KR이 이번이 첫 기수이기 때문에, 한 학교에 한 명의 DSC Lead를 선정했다고 합니다.

올해가 지나고 저의 후배 혹은 동기가 DSC Lead활동을 할 경우, 똑같이 DSC Ewha Womans의 이름으로 활동을 하게 됩니다.

 

이런 내용을 저희 DSC KR lead를 이끄시는 직원 두 분이서 친절하게 안내해 주셨는데, 두 분은 google의 Developer Relations Ecosystem 팀이라고 하셨습니다.

구글은 개발자 생태계를 중요시하다 보니, 개발자의 이야기를 듣고, 이들의 성공적인 커리어와 사업을 만들 수 있도록 돕도록 커뮤니케이션을 이끄는 것이 이 두 분의 역할이라고 하셨습니다!

 

2. Welcoming Speech by Erica Hanson (DSC Program Manager)

구글에서는 해외지사에 있는 사람들과의 커뮤니케이션이 잣다 보니, 행아웃을 많이 이용한다고 합니다. 저희가 들어간 미팅룸에서 행아웃, 혹은 PT를 위한 큰 모니터, 캠코더가 인상적이었습니다.

행아웃을 많이 사용하는 모습!

그래서 한국 DSC 매니저 님들의 짧은 인사 후, DSC를 총괄하는 매니저인 Erica와 행아웃으로 간략하게 인사를 나누고 이전의 DSC 활동에 대해서 짧은 설명을 들었습니다.

아래 공식 영상에 나오시는 분의 활동에 대해서 들으면서 한국에서의 DSC 활동을 격려해 주셨습니다.

https://youtu.be/XRUVTbTUYwE

덧붙이자면 google 자체가 다양성을 중시해서, 성별, 인종, 나이, 종교 등 서로 다른 생각을 가진 사람들을 모으고 각자를 존중하려는 회사의 이념이 보여서 인상적이었습니다.

 

3. DSC 소개 

이후에는 DSC의 활동에 대해서, 그리고 google이 진행하는 다양한 dev 프로젝트에 대해서 설명을 들었습니다.

 

A. DSC - Developer Student Club

위에서 간단히 말씀드렸듯이 DSC는 GDG의 활동을 학생들에게 가져오는 게 목표라고 생각하면 됩니다.

 

DSC 프로그램은 Google의 후원으로 이루어지며, 

DSC의 비전은 학생들의 개발자 커뮤니티 활동을 이끌어 내는 것입니다.

"모든 학생들이 어떻게 하면 google의 프로그램에 참여하도록 유도할 수 있을까?!"라는 생각에서 출발한 것이죠.

그래서 DSC Lead는 학생들이 google의 프로그램 혹은 개발 능력 향상을 위한 활동을 이끌어주고 함께하는 역할입니다.

 

DSC Lead의 활동

1. 각 학교에 Developer Student Club을 개설하고 확장

2. 한국에서 열리는 Onboarding MeetUp에 참여

3. 구글러들과 행아웃 회의

4. 학생들에게 다양한 개발 교육 기회를 제공할 Hands on workshop을 개최

5. 우수한 활동을 한 DSC Lead에게 Google I/O 참여 기회

6. 본인의 스토리를 전 세계에 알릴 수 있는 비디오 참여 기회

 

DSC의 혜택

1. 동료 DSC Lead들과 함께 성장

2. 현업 개발자들과의 다양한 만남

3. 전세계 DSC Lead들과 교류 기회

4. Google과 협업, 개발자 커뮤니티를 리드

5. 개발 스터디 자료 제공

6. Google's Developer Ecosystem의 일원으로 참여

7. Google의 이벤트, 컨퍼런스에 초대

 

 

따라서 이번 DSC KR Lead 은 총 12명으로 이루어져 있습니다.

 

이화여대의 저를 포함한 곳곳의 DSC Lead 분들과 함께 같이 개발자로서 성장할 수 있는 Club을 만들고, 함께 성장할 수 있도록 학교에 맞는 프로그램 혹은, 다 같이 기획하는 전국적 단위의 프로그램을 만들어 많은 학생 개발자들을 만날 수 있는 기회가 될 것을 기대하고 있습니다!

 

뿐만 아니라 현업 개발자들과의 만남 및 google에게 원하는 점을 DSC Lead에게 요구할 수 있다는 점에서 각 학교 혹은 지역의 DSC 활동에 참여하고 개인의 능력을 향상한다면 많은 학생분들에게도 좋은 기회가 될 수 있다고 생각합니다.

 

저도 그래서 학교 공부 이외에도 여러 기술 스택을 부지런하게 더 배우고, 각종 콘퍼런스 및 세미나에서 프로 개발자 님들에게 인사이트를 얻어가서 제 DSC를 키울 수 있게 노력하려 합니다!

 

여러분 지역, 학교의 DSC Lead를 이용해서 가질 수 있는 모든 기회를 뽑아 드세요

 

다른 나라의 DSC 활동에 대한 자세한 내용은 아래 공식 페이지로!!

https://developers.google.com/community/dsc/

 

Developer community programs | Students  |  DSC  |  Google Developers

Find, connect, build. Join a developer community today.

developers.google.com

 

B. GDG - Google Developer Groups

개발업에 종사하는 사람들의 커뮤니티 그룹입니다. 안드로이드, 앱, 크롬, 웹 등 다양한 google 관련 기술에 관심을 가진 사람들을 모으고, 현업 개발자 사이의 커뮤니케이션을 이끌어 냅니다.

 

google 관련 기술뿐만 아니라, 제가 페이스북으로 활동을 보기에는 알고리즘 스터디, 해커톤, 전체 개발자 컨퍼런스 등을 개최하면서 여러 활동을 하고 있습니다.

 

이때 DSC 매니저님들이 말하시길, 여기서의 Developer는 컴퓨터 전공의 개발자뿐만 아니라 비전공자들도 될 수 있고, 개발자가 아니어도, 사람을 위하는 서비스를 생산하는 디자이너, 마케터 등등도 Developer라고 지칭한다고 합니다.

이전에 스마일게이트 윈터 데브 캠프에서 게임업계에서의 개발자는 클라이언트, 서버 개발자와 같은 프로그래밍을 하는 개발자 이외에도, 일러스트 및 게임 그래픽 등등 각종 게임의 시각적 효과를 담당하는 아트팀, 게임에 알맞은 BGM을 제작하는 아트팀, 성우, 스토리 등등 게임의 모든 요소를 만드는 사람을 게임 개발자라고 칭한다고 들은 것이 생각났습니다.

 

DSC Lead 활동을 한다면, 아무래도 GDG와의 컨택이 용이할 것이라고 하셨습니다! 꼭 GDG를 이끄는 분들과 만나고 콘퍼런스 개최 외에도 협업할 수 있는 기회를 꼭 제 손으로 만들어 보고 싶습니다.

 

GDG와 관련해서 자세한 내용은 아래 공식 페이지로!

https://developers.google.com/community/gdg/

 

Developer community programs | Professionals  |  Community Groups Programs  |  Google Developers

Find, connect, build. Join a developer community today.

developers.google.com

 

C. GDE - Google Developer Experts

GDE는 GDG의 커뮤티니적, 그룹 특성과는 다르게, 홀로 활동하는 사람들입니다! 개발의 각 분야를 마스터한 single player와 같은 느낌이라고 할까요? 이분들은 보통 기술 번역, 번역 검수 등 자신의 전문적인 지식을 개발자와 커뮤티니 생태계에 기여한다고 합니다. 

 

그래서 GDE는 한마디로 표현하자면 구글이 인정한 엔지니어이기 때문에,

깊고 넓은 개발 지식, 영어, 최근 테크 동향 등, 개발의 전문성뿐만 아니라 네트워킹 능력을 갖춘 능력자들이라 할 수 있을 것 같습니다! 그래서 GDE 같은 경우 인터뷰가 까다롭지만,

구글의 신기술이 realse 되기 이전에, 먼저 기술을 뜯어볼 수 있다는! 최신 동향의 얼리어답터가 될 수 있는 장점을 갖고 있습니다.

 

GDE와 관련해서 자세한 내용은 아래 공식 페이지로!!

https://developers.google.com/community/experts/

 

Experts  |  Google Developers

A global program to recognize individuals who are experts and thought leaders in one or more Google technologies. These professionals actively contribute and support the developer and startup ecosystems around the world, helping them build and launch highl

developers.google.com

 

D. Women Techmakers

https://www.womentechmakers.com/

 

Women Techmakers

Just applied to attend a Women Techmaker's International Women's Day summit! Learn more and apply here #WTM19 https://goo.gl/1L0Loy

www.womentechmakers.com

 

E. Study jam

스터디 잼 같은 경우는 많은 분들이 아실 것 같습니다.

저도 클라우드, 머신러닝 스터디를 신청했었으나ㅏ,,, 그 무렵 기말고사에 치여서 완수를 못했던 기억이..

구글에서 코세라의 강의를 제공하고, 3주~4주간 강의를 완수하는 미션이 주어지는 형태로 스터디 그룹을 꾸려서 자기 계발을 하도록 유도하는 구글의 프로그램입니다. 

 

Study jam 부분에서 흥미로운 얘기를 많이 들었습니다.

 

먼저 코세라!

스터디 잼을 완수하고 나면, 코세라 강좌를 다 들었다는 인증서가 나오게 됩니다. 이때 코세라가 공식 인증 플랫폼이기 때문에, 코세라 인증서는 취직을 할 때 자격증 관련 제출 서류로 낼 수 있다고 합니다.

한국에서는 이것이 인증이 되는지 기업도, 학생들도 잘 몰라서 이용하지 못하는데, 외국의 경우는 취업에 많이 사용한다고 합니다.

 

그리고 우리나라의 study jam 운영방식!

다른 나라의 경우엔 스터디 잼을 GDG, DSC가 장소 대여, 그룹 형성에 정말 주체적인 역할로 한다고 합니다. 하지만 한국의 경우엔 온라인으로 혹은 학교 친구들과 같이 스터디그룹을 형성해서 각자 강의를 듣는 형식이죠.

외국의 경우에는 수업 중 질문하는 문화가 만연하여, 코세라 뿐아니라 강의를 진행하는데 질문만 받다가 끝나는 경우도 있다고합니다. 하지만 한국은 수업중 질문보다는 강연자의 세션이 끝난 후 개인 질문을 하는 경우가 대부분입니다.

저희가 DSC를 시작한 게 19년 8월이기도 하고 외국과는 다른 한국의 특성에 맞춰서 먼저 스터디 잼과 같은 개발자 커뮤티니 활동을 널리 알리고 이후에 GDG 및 DSC를 통해 개발 커뮤티니를 형성하려는 전략이 있다고 합니다.

 

그리고 자기소개...

이렇게 구글과 DSC활동에 대한 소개를 듣고 밥 먹기 전에

사전에 준비한 1장짜리 슬라이드의 자기소개를 시작했습니다!

자기소개는 언제나 떨리네요... 저 빼고 다 잘해요

발표 슬라이드에는 기술 스택, 개발 활동 위주 지만, 이런 활동을 종합해 봤을 때 제가 느낀 점을 이야기했습니다.

개인적으로 처음 만난 사람들끼리도 개발 이야기를 하면 금세 친해지고 서로 능력을 향상하려는 모습을 볼 때,

개발자 커뮤니티를 만들어 나가는 DSC 활동을 주도하고 싶어서 지원했다는 지원동기를 짧게 스피칭 했습니다!

 

12명의 DSC Lead 분들의 PT를 다 보고 나니, 제주, 부산 등 전국적으로 널리 DSC Lead가 퍼져 있음을 알았습니다!

 

 

4. 점심식사 @Google Cafe Maru

그리고 밥 타입!!! 지금 식당이 공사 중이라서 별로라고 하셨는데, 와우,,, 그런 거 치고 너무 맛있었습니다.

근데 사진을 이쁘게 못 찍어서 아까워요!!

마카롱, 케이크, 과일, 탕수육 다조아아!!!

그래서 평소에는 어떻게 나오냐고 여쭤보니 랍스터, 스테이크 이러시는데 엄청 놀랐습니다..ㅠㅜ

취직시켜주세요!!! 직원들의 건강을 신경 써서 메뉴를 선정한다고 합니다.

 

5. 구글 코리아 오피스 투어

오피스 투어가 진짜 좋았어요!! 사진도 많이 찍고 

구글 코리아의 인테리어에서 구글의 분위기를 느낄 수 있어서 좋았습니다!

 

구글 로고!!

구글 로고 찰칵!!

각 구글 오피스마다 그 나라의 특색이 드러나게 디자인한다고 합니다.

그리고 핼러윈이나, 설날 등등 특별한 날에 따라서도 회사 프런트 디자인이 바뀐다고 하는데 재미있었습니다.

 

회사 인테리어가 어떻게 이렇게 느낌있져

왼쪽 사진은 통로가 그냥 인테리어처럼 보이지만 저 사이 공간 공간에 테이블을 올려서 지나가다가 업무를 볼 수 있게 해 놓았더라고요ㅋㅋㅋㅋ 갓 구글... 업무를 강제하진 않지만 어디서든 할 수 있게!!

 

곳곳에 알록달록함이 가득
벽에 있는 안드로이드 너무 귀여워요
구글과 함께 찰칵!

두 사진의 장소는 구글 내의 다양성을 존중하는 문화가 인테리어에 의미로 담겨서 인상적이었습니다. 외에도 시각 장애인이신 분들이 디자인한 벽지도 의미가 담겨있어서 좋았는데, 그곳은 사진 찍는 걸 까먹었습니다ㅜㅠ

 

저희가 사용한 회의룸 이름!

그리고 재밌었던 것 중에 미팅룸 이름이 저런 식으로 특색이 있었습니다!!

저희가 사용한 미팅룸 주변에는 VECTOR , TANGENT 이런 식으로 붙어있었고,

이외에도 GA, NA, DA 등등 회의실 이름이 귀여웠습니다

 

지금 돌이켜 보니 인테리어 디자인 하나하나가 의미가 있어서, 둘러볼 때 마냥 신기하고, 재미있었던 오프스 투어였습니다.

 

6. 네트워킹 & 아이스브레이킹 + DSC 워크샵 

이후 저희 미팅룸으로 돌아와 DSC KR Lead 끼리 잠깐의 아이스 브레이킹을 했습니다

Google Product 로고를 보고 이름을 맞추는 퀴즈였는데, Firebase 말고는 아는 게 없어서 구글링을 열심히 했습니다

 

퀴즈를 맞추고 받은 아래 안드로이드 피규어입니다!

얼굴 몸통 다리 다 분리해서 다른 피규어와 섞어서 조합할 수도 있고 귀여워요ㅠㅠ

안드로이드 피규어

이후에는 각 Lead 가 생각하고 있는 DSC의 여러 행사를 서로 공유하고, 브레인스토밍 하는 시간을 가지면서

DSC KR Lead First meet up 행사가 마무리되었습니다!!

 

+ 재밌었던 일

어제 블로그 포스팅을 쓰던 중 제 인스타를 통해서 파키스탄 DSC Lead 분께 DM이 왔었습니다.

그분도 여성분이었는데, 나중에 Women Tech도 GDG도 해보고 싶다고 이야기도 많이 하고

DSC KR 티셔츠를 자랑하기도 하고, 이 친구 덕분에 whatsApp도 깔고 3~4시간 정도 연락을 했는데 

서로의 활동을 공유하고 의견을 나눌 수 있어서 좋았습니다!!

DSC 덕분에 외국인 학생 개발자와 소통할 수 있는 기회가 생긴 것 같아서 감사했습니다.

 

 

+ Facebook 그룹

이렇게 모든 일정을 마치고 저희 DSC KR Lead들은 앞으로 카카오톡 단톡 방이나 Slack을 이용해서 소통하기로 했습니다.

그리고 현재 DSC Korea라는 Facebook 그룹을 생성이 되어있습니다.

https://www.facebook.com/groups/2210738235883893/

 

보안 확인 필요

메뉴를 열려면 alt + / 키 조합을 누르세요

www.facebook.com

앞으로 이 그룹을 통해서 한국의 DSC의 활동을 공유하고, 소통할 수 있었으면 합니다.

관심 있으신 분들은 그룹에 들어와 주세요!

 

앞으로의 DSC KR Lead들의 활동, 그리고 DSC Ewha Womans의 활동을 기대해주세요!

 

Have you heard of GDG, a.k.a. Google Developer Groups?

To put it simply, DSC is like the college student version of GDG!!

 

From the onboarding, I heard that Google places great importance on communicating with developers. That's why Google runs the following programs to build developer communities.

- Women Techmakers

- Google Developer Groups

- Google Developers Experts

- Developer Student Clubs

 

Among them, DSC stands for Developer Student Clubs! This year, I was selected as a DSC lead at Korea, and I'll be representing my university and Korea as DSC Ewha Womans.

 

So let me share my first DSC lead in Korean activity — the onboarding at google korea.

 

0. Table of Contents

- Google Intro.

- Welcoming Speech by Erica Hanson (DSC Program Manager)

- DSC Introduction

- Lunch @Google Cafe Maru

- Google Korea Office Tour

- Networking & Icebreaking

- DSC Workshop (Vision & Roadmap Setting)

 

1. Google Intro

A t-shirt that felt like it was announcing the start of DSC!

 

When I first arrived, there were t-shirts with the Developer Student Clubs logo ready for us! Since non-employees can't enter on their own, there was a Guest visitor pass and a name tag with my affiliated university, DSC Ewha Womans.

 

The basic goal of DSC KR is to build developer communities within universities. Since this is the very first cohort of DSC KR, they selected one DSC Lead per university.

After this year, if my juniors or classmates take on the DSC Lead role, they'll continue to operate under the name DSC Ewha Womans.

 

Two staff members who lead our DSC KR Leads kindly explained all of this to us. They said they were from Google's Developer Relations Ecosystem team.

Since Google values the developer ecosystem so much, their role is to listen to developers and lead communications to help them build successful careers and businesses!

 

2. Welcoming Speech by Erica Hanson (DSC Program Manager)

At Google, since communication with people at overseas offices is frequent, they use Hangouts a lot. In the meeting room we entered, the large monitor for Hangouts or presentations and the camcorder were quite impressive.

They use Hangouts a lot!

After a brief introduction from the Korean DSC managers, we had a short greeting via Hangouts with Erica, the overall DSC program manager, and heard a brief explanation about previous DSC activities.

She encouraged our DSC activities in Korea while telling us about the person featured in the official video below.

https://youtu.be/XRUVTbTUYwE

On top of that, it was impressive to see Google's company philosophy of valuing diversity — bringing together people of different genders, races, ages, religions, and perspectives, and respecting each individual.

 

3. DSC Introduction 

After that, we heard explanations about DSC activities and the various dev projects that Google runs.

 

A. DSC - Developer Student Club

As I briefly mentioned above, you can think of DSC as bringing GDG activities to students.

 

The DSC program is sponsored by Google, 

and DSC's vision is to foster developer community activities among students.

It started from the idea of "How can we get all students to participate in Google's programs?!"

So a DSC Lead is someone who guides and joins students in Google's programs or activities aimed at improving development skills.

 

DSC Lead Activities

1. Establish and expand a Developer Student Club at each university

2. Participate in Onboarding MeetUps held in Korea

3. Hangouts meetings with Googlers

4. Host Hands-on workshops to provide students with various development learning opportunities

5. Opportunity to attend Google I/O for outstanding DSC Leads

6. Opportunity to participate in videos to share your story with the world

 

Benefits of DSC

1. Grow together with fellow DSC Leads

2. Various opportunities to meet professional developers

3. Opportunities to connect with DSC Leads worldwide

4. Collaborate with Google and lead developer communities

5. Development study materials provided

6. Participate as a member of Google's Developer Ecosystem

7. Invitations to Google events and conferences

 

 

So this year's DSC KR Lead cohort consists of a total of 12 people.

 

Together with DSC Leads from all over the country, including myself from Ewha Womans University, I'm looking forward to creating Clubs where we can grow as developers — whether through programs tailored to each university or nationwide programs planned together — and having opportunities to meet many student developers!

 

On top of that, since you can meet professional developers and make requests to Google through DSC Leads, I think participating in DSC activities at your university or region and improving your personal skills could be a great opportunity for many students.

 

That's why I plan to diligently learn various tech stacks beyond my school studies, and gain insights from professional developers at various conferences and seminars to grow my DSC!

 

Everyone, make the most of your local or university DSC Lead and squeeze out every opportunity you can get

 

For more details about DSC activities in other countries, check out the official page below!!

https://developers.google.com/community/dsc/

 

Developer community programs | Students  |  DSC  |  Google Developers

Find, connect, build. Join a developer community today.

developers.google.com

 

B. GDG - Google Developer Groups

This is a community group for people working in the development industry. They bring together people interested in various Google-related technologies like Android, apps, Chrome, and web, and facilitate communication among professional developers.

 

Beyond just Google-related technologies, from what I've seen on Facebook, they also host algorithm study groups, hackathons, developer conferences, and various other activities.

 

The DSC managers mentioned that "Developer" here doesn't just mean computer science majors — non-majors can be developers too, and even designers, marketers, and others who create services for people can all be called Developers.

This reminded me of when I attended the Smilegate Winter Dev Camp, where I heard that in the gaming industry, "game developer" doesn't only refer to programmers like client and server developers — it also includes the art team handling illustrations and game graphics and visual effects, the audio team creating fitting BGMs, voice actors, story writers, and basically everyone who creates any element of the game.

 

They said that being a DSC Lead would make it easier to get in contact with GDG! I really want to meet the people leading GDG and create opportunities to collaborate beyond just hosting conferences.

 

For more details about GDG, check out the official page below!

https://developers.google.com/community/gdg/

 

Developer community programs | Professionals  |  Community Groups Programs  |  Google Developers

Find, connect, build. Join a developer community today.

developers.google.com

 

C. GDE - Google Developer Experts

Unlike GDG's community and group-oriented nature, GDE members are individuals who work independently! Think of them as single players who've mastered their respective fields of development. They typically contribute their specialized knowledge to the developer and community ecosystem through things like technical translations and translation reviews. 

 

So in short, GDEs are engineers recognized by Google,

which means they're talented individuals with deep and broad development knowledge, English proficiency, awareness of recent tech trends — not just technical expertise, but networking skills as well! The interview process for GDE is quite rigorous, but

they get the advantage of being able to get their hands on Google's new technologies before they're released to the public! They get to be early adopters of the latest trends.

 

For more details about GDE, check out the official page below!!

https://developers.google.com/community/experts/

 

Experts  |  Google Developers

A global program to recognize individuals who are experts and thought leaders in one or more Google technologies. These professionals actively contribute and support the developer and startup ecosystems around the world, helping them build and launch highl

developers.google.com

 

D. Women Techmakers

https://www.womentechmakers.com/

 

Women Techmakers

Just applied to attend a Women Techmaker's International Women's Day summit! Learn more and apply here #WTM19 https://goo.gl/1L0Loy

www.womentechmakers.com

 

E. Study jam

I think many of you are probably already familiar with Study Jam.

I also signed up for the Cloud and Machine Learning studies, but... around that time I was crushed by finals and couldn't complete them...

It's a Google program where they provide Coursera courses and give you a mission to complete the courses over 3-4 weeks, encouraging self-development by forming study groups. 

 

I heard a lot of interesting things during the Study Jam section.

 

First, Coursera!

When you complete a Study Jam, you get a certificate proving you finished the Coursera course. Since Coursera is an officially recognized platform, Coursera certificates can actually be submitted as qualification documents when applying for jobs.

In Korea, neither companies nor students are well aware that these certificates are recognized, so they don't really use them. But in other countries, they're widely used for employment.

 

And Korea's Study Jam format!

In other countries, GDG and DSC play a very proactive role in Study Jam by arranging venues and forming groups. But in Korea, people tend to form study groups online or with school friends and watch the lectures on their own.

In other countries, asking questions during class is so common that sometimes the entire session ends up being just Q&A — not just for Coursera but for lectures in general. In Korea, however, most people ask individual questions after the speaker's session ends rather than during the class.

Since we started DSC in August 2019, and considering Korea's unique characteristics compared to other countries, they said the strategy is to first spread awareness of developer community activities like Study Jam, and then form developer communities through GDG and DSC afterward.

 

And self-introductions...

After hearing about Google and DSC activities, and before lunch,

we started our self-introductions using a single slide we had prepared in advance!

Self-introductions are always nerve-wracking... Everyone was amazing except me

My presentation slide focused on tech stacks and development activities, but I talked about what I felt from all these experiences combined.

Personally, seeing how even strangers quickly bond when they talk about development and how they all strive to improve each other's skills,

I gave a short speech about how that motivated me to apply — wanting to lead DSC activities that build developer communities!

 

After watching all 12 DSC Leads' presentations, I realized that DSC Leads are spread all across the country, from Jeju to Busan!

 

 

4. Lunch @Google Cafe Maru

And then it was meal time!!! They said the cafeteria was under renovation so it wasn't great, but wow... for something "not great," it was super delicious.

But I'm sad I couldn't take prettier photos!!

Macarons, cake, fruit, sweet and sour pork — love them all!!!

When I asked what the food is usually like, they said lobster, steak, and stuff like that — I was shocked..ㅠㅜ

Please hire me!!! They said the menu is designed with employees' health in mind.

 

5. Google Korea Office Tour

The office tour was really great!! I took so many photos 

and it was nice to feel Google's atmosphere through the interior design of Google Korea!

 

Google logo!!

Snap a photo with the Google logo!!

They said each Google office is designed to reflect the unique characteristics of its country.

And the front design of the office changes for special occasions like Halloween or Lunar New Year, which was really fun to hear.

 

How is the office interior this aesthetic

The left photo looks like just a decorative hallway, but they actually put tables in the spaces between so you can stop by and work as you walk past lol. Google is amazing... They don't force you to work, but they make it possible to work anywhere!!

 

Colorful vibes everywhere
The Android on the wall is so cute
Snap with Google!

The locations in these two photos were impressive because Google's culture of respecting diversity was meaningfully reflected in the interior design. There was also a wallpaper designed by visually impaired individuals that carried beautiful meaning, but I forgot to take a photo of it ㅜㅠ

 

The name of the meeting room we used!

And one of the fun things was that the meeting room names were all uniquely themed like this!!

The meeting rooms near ours had names like VECTOR, TANGENT, and so on,

and other meeting rooms had cute names like GA, NA, DA, etc.

 

Looking back now, every little detail of the interior design had meaning, which made the office tour feel genuinely amazing and fun the whole time.

 

6. Networking & Icebreaking + DSC Workshop 

After that, we returned to our meeting room and had a short icebreaker among the DSC KR Leads.

It was a quiz where we had to look at Google Product logos and guess their names. I didn't know anything besides Firebase, so I Googled hard.

 

Here are the Android figurines we received for getting quiz answers right!

You can separate the head, body, and legs and mix them with other figurines to create combinations — so cute ㅠㅠ

Android figurines

After that, each Lead shared the various DSC events they had in mind and we had a brainstorming session,

and that wrapped up the DSC KR Lead First Meet Up!!

 

+ Something Fun That Happened

While I was writing this blog post yesterday, I got a DM on Instagram from a DSC Lead in Pakistan.

She was also a woman, and we talked a lot about wanting to try Women Tech and GDG in the future.

I even showed off my DSC KR t-shirt, and thanks to her I installed WhatsApp and we chatted for about 3-4 hours. 

It was great being able to share our activities and exchange ideas!!

I was grateful that DSC gave me the opportunity to connect with a student developer from another country.

 

 

+ Facebook Group

After finishing all the activities, we DSC KR Leads decided to communicate going forward through a KakaoTalk group chat or Slack.

And a Facebook group called DSC Korea has already been created.

https://www.facebook.com/groups/2210738235883893/

 

Security Check Required

Press alt + / to open the menu

www.facebook.com

Going forward, I hope we can share DSC activities in Korea and communicate through this group.

If you're interested, please join the group!

 

Please look forward to the upcoming activities of the DSC KR Leads, and of DSC Ewha Womans!

댓글

Comments

Develop/git-github

git-flow 전략

git-flow clean code study에서 앞으로의 협업을 대비하여 git-flow 전략을 이해하고 실습하는 시간을 가졌습니다.당시 스스로 작성한 노트입니다. git-flow 전략을 이해하기 위해 아래 우아한 형제들 블로그를 참고했습니다. http://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html 우린 Git-flow를 사용하고 있어요 - 우아한형제들 기술 블로그안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다.오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합니다. ‘배달의민족 안드로이드 모바일 파트에서 이렇게 브랜치를 관리하고..

git-flow 전략

728x90

git-flow

 

clean code study에서 앞으로의 협업을 대비하여 git-flow 전략을 이해하고 실습하는 시간을 가졌습니다.

당시 스스로 작성한 노트입니다. 

 

git-flow 전략을 이해하기 위해 아래 우아한 형제들 블로그를 참고했습니다.

 

http://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html

 

우린 Git-flow를 사용하고 있어요 - 우아한형제들 기술 블로그

안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다.오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합니다. ‘배달의민족 안드로이드 모바일 파트에서 이렇게 브랜치를 관리하고 있구나’ 정도로 봐주시면 좋을 것 같습니다.

woowabros.github.io

 

1. Branch Naming

master

배포버전 브랜치 > tag를 이용해서 버전을 기록한다.

  • X . 0 : 프로젝트 추가
  • 1 . X : 기능 추가

 

develop

개발 브랜치

  • 2줄 전략 : merge + rebase 를 이용해서 git flow를 이쁘게 본다! 어느 시점에 반영이 됐는지 보기 위해서

 

feature

기능 브랜치

  • develop에서 갈라져 나온 기능 : git flow를 깔끔하게 보기 위해, origin develop의 갈라나온 시점을 잘 관리해 주어야 한다. git pull --rebase origin devlop 을 이용해서 제일 마지막에 반영된 develop에서 branch가 갈라 나온 것 처럼 보이게 한다.

 

hotfixes

배포버전에서 버그가 났을 떄 고치기 위한 브랜치

  • hotfixes에서 수정하고 나면 develop과 master에 push한다.

 

release

배포 직전에 QA 수정

  • 베타 서버와 같은 버전, QA 받고 나면 develop과 master에 push한다.

 

 

2. github issue 이용 관련 intelli J 단축키

ctrl+shift+a - intellij에 github 등록해서 issue 바로 접근

alt+shift+n  - issue이름으로 feature branch를 딴다.

 

 

3. git-flow 전략에 따른 git bash 명령어

git checkout feature/git-flow-2

git fetch                                     ## 원격에 있는 반영사항들을 local에 알리기

git commit -m "git-flow-2 commit"

git pull --rebase origin develop

git push origin feature/git-flow-2

git checkout develop

git pull origin devlop

git merge --no-ff feature/git-flow-2

git push origin develop

커밋 메시지 여러개를 하나로 !

git rebase -i HEAD~2
# s : commit 최신것을 스쿼시하겠다. 둘중에 의미없는 message를 지우거나 수정한다.

git-flow

 

In our clean code study group, we took some time to understand and practice the git-flow strategy to prepare for future collaboration.

These are the notes I wrote at the time. 

 

To understand the git-flow strategy, I referenced the blog post from Woowa Brothers (Baemin) below.

 

http://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html

 

We Use Git-flow - Woowa Brothers Tech Blog

Hello, I'm Dongho Na, an Android app developer on the Baemin Front-end Development Team at Woowa Brothers. Today, I'd like to introduce the Git branch strategy we use in our Android team. Think of it as a look into how the Baemin Android mobile team manages their branches.

woowabros.github.io

 

1. Branch Naming

master

Release version branch > Uses tags to record versions.

  • X . 0 : New project added
  • 1 . X : New feature added

 

develop

Development branch

  • Two-line strategy: Use merge + rebase to keep the git flow looking clean! This helps you see at which point changes were integrated.

 

feature

Feature branch

  • Branches off from develop: To keep the git flow looking clean, you need to carefully manage the point where it diverges from origin develop. Use git pull --rebase origin devlop to make it look like the branch was created from the latest reflected develop.

 

hotfixes

Branch for fixing bugs found in the release version

  • After fixing in hotfixes, push to both develop and master.

 

release

QA fixes right before deployment

  • Same version as the beta server. After QA is done, push to both develop and master.

 

 

2. IntelliJ Shortcuts for Using GitHub Issues

ctrl+shift+a - Register GitHub in IntelliJ to access issues directly

alt+shift+n  - Create a feature branch named after the issue.

 

 

3. Git Bash Commands Following the git-flow Strategy

git checkout feature/git-flow-2

git fetch                                     ## 원격에 있는 반영사항들을 local에 알리기

git commit -m "git-flow-2 commit"

git pull --rebase origin develop

git push origin feature/git-flow-2

git checkout develop

git pull origin devlop

git merge --no-ff feature/git-flow-2

git push origin develop

Squash multiple commit messages into one!

git rebase -i HEAD~2
# s : commit 최신것을 스쿼시하겠다. 둘중에 의미없는 message를 지우거나 수정한다.

댓글

Comments

Daily/Code Fest

2019 오픈핵 후기 | 2019 OpenHack Review

첫 블로그 포스팅이네요. 이번에 저한테 의미 있었던 해커톤인 오픈 핵에 갔다 오고 나서 많은 개발자 분들이 블로그를 하시는 걸 보고 생각만 하고 있던 기술 블로그를 시작하려고 합니다. 오픈 핵은 소프트웨어 중심대학으로 지정된 각 대학에서 대표로 선정된 약 4명의 학생들이 모여서 한 해커톤입니다! 오픈 핵 지원서 쓸 때만 해도 시험기간이라서 학교 가면서 지하철에서 30분 동안 후다닥 기존 포트폴리오 복붙 했는데 붙을 줄이야!! 학과 사무실에서 오픈 핵 참가자라고 연락 왔을 때 종강하고 개발 공부 좀 하다가 가야지 했는데, 종강하고 번아웃 와서 개발을 아무것도 못하고 있었어요. 근데 오픈 핵 갔다 오고 좋은 사람들도 많이 만나고 좋은 영향을 정말 많이 받아서 다시 개발자로서 버닝 하려고 합니다! 후기 시작하..

2019 오픈핵 후기 | 2019 OpenHack Review

728x90

첫 블로그 포스팅이네요. 이번에 저한테 의미 있었던 해커톤인 오픈 핵에 갔다 오고 나서 많은 개발자 분들이 블로그를 하시는 걸 보고 생각만 하고 있던 기술 블로그를 시작하려고 합니다.

 

오픈 핵은 소프트웨어 중심대학으로 지정된 각 대학에서 대표로 선정된 약 4명의 학생들이 모여서 한 해커톤입니다!

 

오픈 핵 지원서 쓸 때만 해도 시험기간이라서 학교 가면서 지하철에서 30분 동안 후다닥 기존 포트폴리오 복붙 했는데 붙을 줄이야!! 학과 사무실에서 오픈 핵 참가자라고 연락 왔을 때 종강하고 개발 공부 좀 하다가 가야지 했는데, 종강하고 번아웃 와서 개발을 아무것도 못하고 있었어요. 근데 오픈 핵 갔다 오고 좋은 사람들도 많이 만나고 좋은 영향을 정말 많이 받아서 다시 개발자로서 버닝 하려고 합니다!

 

후기 시작하겠습니다!

 

 

정말 본인 위주의 후기입니다.

 


 

첫째 날

- 개발 세미나

- 자기소개

- 아이디어 피칭

- 팀빌딩

- 개발

 

둘째 날

- 개발 개발 개발

- 멘털 케어엔 멘토 테이블로

 

셋째 날

- 개발

- 발표

- 수상

- 네트워킹


첫째 날

오픈 핵 일정 확인

오픈핵 일정표

 

오픈 핵은 익산 웨스턴 라이프 호텔에서 진행되었습니다.

 

저희 학교 같은 경우는 이화 개발자들끼리 모두 같은 ktx 호차를 끊어줘서 다 같이 이동했습니다. 같이 밥 먹고 종강한 얘기나 교수님 얘기하면서 조금 친해진 것 같습니다. 다 같이 사진 찰칵!! 제일 상태 좋을 때 찍어야 된다고 하고 찍었어요ㅎㅎ

 

들어가자마자 주는 받은 굿즈!!! 진짜ㅠㅠㅠ 행복했어요!!! 그동안 갔다 온 해커톤 명찰을 모두 갖고 있는데, 오픈 핵은 굿즈까지 완벽해요!! 특히 저 배지들은 진짜 너무 귀여워서 주섬주섬!!


개발 세미나

굿즈 받고 저는 3층에서 ai, 개발, openSW 특강을 들었습니다. 사실 저는 그동안 프로젝트하면서 github랑은 좀 많이 친해져서 다른 세션을 들으려고 3층에 올라온 건데 정말 좋았습니다!!

 

1. ai 세미나

사실 AI나 블록체인 쪽 보다는 웹 개발에 더 많이 관심이 있어서, 사실 잘 모르던 분야인데 발표자 분께서 질문도 잘 받아주셔서 너무 감사했습니다! 지금 강연 때 봤던 필기 보니까 음,, 역시 생소한 단어네요!!
mortal, contract의 개념에 대해서 설명해 주신 게 기억에 남는데, 외부에서 ai에 접근할지, 안 할지 영화 예시를 들어주시면서 설명해주셨습니다.

 

2. Docker + Cloud 서버 개발 세미나

이 세미나가 개인적으로 저한테 너무 도움이 된 세미나였습니다. 
사실 그동안 docker환경이나, nginx 말고 다른 aws 로드 밸런서에 대해서 궁금했는데, 개발의 전체적인 과정이나 코드를 강연자 님이 처음부터 시현해주셔서 감을 잡은 것 같은 느낌이 들었습니다. 
ppt에서 각 코드의 흐름을 하나하나 필기했는데요 제가 기억나는 전체적인 흐름은

 

AWS 서버 생성

 - AWS EC2 생성, SSH 서버 연결

DOCKER 설치 (doker hub 원격 서버 이용)

 - IMAGE 생성 (github과 비슷한 느낌?)

   > (github repository - docker hub repository)

   > (source code - image(container) : 서버 환경 저장)

도메인 연결 (AWS route)

ELB 생성 (로드밸런서)

 - 이전에 ELB용 보안 그룹 생성하기

 - ELB 생성 후 EC2에 추가

 

가장 기억에 남는 건 docker 명령어가 흘러가는 과정을 다 보여주신 거였는데, 해커톤에서 docker를 공부하려다가 시간이 부족해서 미루고만 있었는데 AWS랑 연계해서 배포 개념을 훑어준 게 저한테 너무 큰 자산이었달까! 꼭 블로그에 공부해서 포스팅하고 말겠습니다!!

 

3. 오픈 소스 세미나

오픈 소스 세미나 같은 경우 한글시계 개발자님께서 진행해주셨습니다. 와 이전에 써 보고 나서 대단한 분이라 생각했는데 저보다 한 살 어린 분이라 진짜 놀랐습니다. 역시 컴공판 재능충들이 넘치는 곳!!

 

강연자 님이 말한 것 중에 오픈소스의 장점으로

1. 문제제기

2. 기능 개선 요청

3. 코드 품질 강화

4. 프로그램 배포 간편

 

이렇게 네 개가 있었는데 제가 질문했던 것들은 2개였습니다.

 

Q. 프로그램 배포가 간편한 거면 github에 exe파일을 공개하시는 것 같은데 브랜치 전략을 어떤 걸 사용하시나요

 

A. git flow를 사용합니다. (야호 제가 아는 개념) feature브랜치로 기능별로 구현하고, 각 feature 브랜치의 내용을 develop 브랜치에 반영, 그리고 master 브랜치에 실제 서비스를 배포하는 형식으로 하고 있습니다.

 

Q. 오픈 소스 프로젝트의 경우엔 내 주 언어(java)가 아닌 언어도 사용하고 여러 개의 언어가 얽혀있는데 어떻게 코드를 해석하시나요?

 

A. 대부분의 오픈 소스 프로젝트가 규모가 큰 프로젝트(chrom, android 등)가 많아서 여러 언어가 섞여있긴 해요. 그래서 저는 어느 언어든 main 함수와 같은 역할을 하는 게 있잖아요?! main 함수부터 보고 따라갑니다! 이해 못해도 좋아요!

특히 두 번째 질문에 대한 답변이 저한테 유익했던 시간이었습니다.

 


자기소개

세미나가 끝나고 자기소개를 진행했는데 참가자, 멘토님, 운영진님 까지 모두 200명 가까이 되는 사람들이 모두 소개하는 자리를 가졌습니다. 간단하게 학교, 자신의 기술 스택, 오픈 핵에 오게 된 소감을 발표했습니다.

 

네. 롤 API로 재밌는 서비스 만들고 싶다고 한 게 접니다ㅋㅋㅋ

개인적으로 항상 롤 API가 되게 다양하고 문서가 갖춰져 있다고 생각해서 그 자리에서 말했는데 말을 뱉고 나서 바로 api문서 찾아보니까 spring으로 개발하지 않는 이상 다른 프레임워크 학습곡선 때문에 클라이언트한테 api 넘겨주는 시간이 오래 걸릴 것 같아서 접었습니다! 헤헤


아이디 피칭

드디어 아이디어 피칭!!

한 명 한 명 나와서 아이디어를 발표하는 시간을 가졌습니다! 사실 배지가 탐나서 나갈까 했다가 제가 맘에 드는 아이디어 (저희 팀 알고리더!!!)가 나와서 혹시라도!!! 선택될까 봐 가만히 있었어요.

 

그중에도 확실히 기억에 남는 건 성관련 서비스 기획하신 분!! 진행자님의 짓궂은 멘트에도 굴하지 않고 만들어 낸 게 개인적으로 멋있는 분이었습니다!


팀빌딩

아이디어 피칭 후, 벽에 붙어있는 아이디어의 소개에 스티커를 붙여서 스티커를 많이 받은 순으로 최종 아이디어를 선정했습니다. 그렇게 최종 선정된 아이디어의 PM들은 각자 자신의 아이디어 종이를 붙이고 돌아다니면서 개발자님을 구하는 신기한 광경이 나왔습니다!

저희 팀은 AlgoReader! 백준 알고리즘 아이디를 입력하면, 유저가 푼 문제를 분류해서 시각화해서 알려주는 아이디어였습니다. 저는 저희 PM님한테 스티커 3개 몰빵 했다고 어필했습니다!


개발 시작

백엔드 2 + 프런트엔드 2 + 디자인 1 이렇게 5명이서 개발을 시작했습니다!

첫날에 다 같이 닭강정 먹으면서 이야기하는데 이때만 해도 다들 세상 해맑은 성격인지 몰랐어요!! 개발하면서 너무 재밌게 개발하고, 오류가 나도 음!!! 이런 오류가 나도 이쁘게 보이는 것 같아!! 하고 칭찬해주는 다들 착한 사람들ㅜㅜ 

특히 디자이너 소현이랑 엄청 친해져서 좋았어요><

 

이후 스택을 정했는데

 

프런트엔드는 vue js백엔드django로 정했습니다!


둘째 날

개발 개발 개발!!

1. 크롤링

 

백준 알고리즘을 이용해야 했기에 백준 api를 찾아봤는데 백준 님 답변은

 

그렇지만 api가 없더군요ㅜㅜ 그래서 결국은 파이썬 beautiful soup을 이용해서 제가 크롤링을 담당하게 되었습니다.

 

그런데 개발을 하면서 확실히 안 하던 언어를 사용하다 보니 계속 오류가 뜨더라고요.

저 같은 경우 대부분의 에러가 타입 에러... 그동안 java로 개발하면 intellij에서 타입을 다 확인하고 개발을 하다 보니까 이런 경우가 없었다 보니 더 고생을 했습니다!

2. 장고!!!!

클라이언트와 통신하는 rest api 같은 경우는 장고를 이용해서 개발했습니다.

장고가 확실히 api가 빠르게 구현되긴 하지만 오히려 제가 애먹은 부분은 환경 세팅이었습니다ㅜㅜㅜ 파이썬으로 개발하는 친구가 docker를 사랑하는 이유를 알게 됐어요!

 

그렇지만 확실히 여러 프레임워크를 상주하다 보니까 이해는 빨리되는 느낌이었습니다! node.js에서의 package.json, spring의 gradle과 maven처럼 django도 requirement.txt 파일이 필요하다는 걸 알았고, django에서 DB 연동 시 migrate 하는 방식이 ruby에서 migrate 하는 방식이 비슷하다고 느꼈습니다.


멘털 케어엔 멘토 테이블로

그래서! 위에 문제들을 겪을 때! 특히 환경설정에서 애먹을 때 멘토 테이블을 갔는데 다들 너무 친절하게 같이 고민해주고 해결해주셔서 너무 감사했습니다.

 

핵 데이에서 같은 팀이었던 두진님이 gitignore 파일이 안 먹어서 (이미 올라간 파일을 ignore 하려고 해서 생긴 문제) 고민했던 문제도 해결해주셨고

 

멋쟁이 사자처럼을 같이했던 현석오빠 같은 경우는 저랑 같이 장고 코드 보면서 주변분들께 파이 참 환경설정 물어봐주는데 너무 고마웠습니다! 그리고 이때 당근 마켓 재호 오빠가 해결을 싹 해주셔서 그 이후 개발은 순탄했습니다!!ㅎㅎ

 

외 에도 자바의 requirement.txt 파일을 만들 줄 모르고 이런 모듈 설치가 안돼서 장고 실행이 안돼서 애먹을 때도 데브옵스 코리아 조철현 멘토님께서도 다 해결해주셨습니다.

 

멘토님들이 하나같이 자기들 문제처럼 코드 한줄한줄 봐주시는 모습에 감동하고 이번 해커톤에서 자바 개발자라고 자바만 파지 않고 스택을 그래도 조금씩은 넓혀봐야겠다는 생각을 하게 되었습니다.


셋째 날

개발

저 같은 경우엔, 크롤링 api 수정을 마치고 잠시 눈을 붙이러 올라갔는데 저희 프런트엔드들은 한숨도 못 잤다고 해서 미안했습니다ㅜㅜ 그래서 일어나서 밥 먹는 대로 빠르게 README.md 파일 및 서버 아키텍처 구조 작성하고 발표를 준비했습니다.


발표

각 팀에서 몇 명은 자신의 테이블에서 각종 시연 및 발표를 하고, 다른 몇 명은 다른 테이블을 돌아다니는 방식으로 발표가 진행됐습니다. 1인 3표까지 다른 팀에 투표할 수 있어서 통상적인 해커톤이랑은 심사기준부터가 달랐습니다!

개인적으로 한 명 한 명 무대 앞에서 나와서 피칭하는 방식이 아니라, 모두가 직접 시연하고 질문할 수 있는 방식이라서 더 집중되었습니다.

 

제가 개인적으로 대단하다고 생각했던 프로젝트는 15조였나 안드로이드 텍스트 에디터 라이브러리를 만들었던 팀이었습니다. 대부분의 해커톤 서비스는 일반 사용자를 겨냥한 게 많은데, 이 팀처럼 개발자를 겨냥한 서비스는 새로웠습니다!! 그래서 개인적으로 수상팀에 당연히 들 거라고 생각했어요!!

 

저희 팀도 열심히 시현했습니다!!

저희 팀 시현하다 보니까 와,,, 알고리즘 120위 대인 랭커 분도 보고 신기했습니다


수상

두구두구 그래서 저희 팀은!!

2등입니다!!!

사실 시연 때 많은 분들이 재밌어해 주셔서, 팀원들이 모두 4등 정도 기대하던 상태인데 이름이 안 불리길래 다들 체념했었습니다ㅋㅋㅋ 그래서 2등 팀에 저희가 불렸을 때 팀원들 모두 얼떨떨해하면서 갑자기 행사장에 침묵이!!!

다들 너무 기뻐하면서 기념 촬영하고!

나중에 얘기했는데 알고리더는 서버도 프런트도 조금씩 수정해서 제가 dns 배포 무조건 할 거라고 밀어붙이는 중입니다!!


네트워킹

수상이 끝나고 기념촬영 후에 저녁식사 겸 네트워킹 시간이 있었습니다. 팀원들끼리 이야기하다가, 여성 개발자분들 이야기를 들을 수 있다고 해서 저는 그 테이블에 가서 이야기를 했습니다. google 프로덕트 매니저 이해민 멘토님, MS 전미정 멘토님 이야기를 들으면서 사실 걱정이 많이 됐습니다. 멘토님들이 그동안 여성 개발자로서 고생했던 일화들이 저한테도 일어날 것 만 같았기 때문입니다. 근데 듣다 보니 멘토님들은 이런 고생에도 꿋꿋하게 자신이 하고 싶은 일, 커리어가 개발이라는 걸 알고 있고 오류를 해결하는걸 즐거워하시는 정말 코딩을 사랑하시는 분들이었습니다. 그래서 저도 앞으로 힘들겠지 하고 짐작하고 고민하는 것보단, 개발자로서 이것저것 시도하면서 이번 해커톤처럼 재밌게 코딩해야겠다고 마음을 먹게 되었습니다!


마무리

저한테 정말 기억에 많이 남는 해커톤입니다. 여기서 만난 기존에 알던 인연들도, 새로 만난 인연들도 저한테 너무 소중한 사람들이기 때문입니다. 그리고 그동안 7번 정도의 해커톤을 나갔지만, 이렇게 실제로 배포하고 싶다고 생각될 만큼 애정을 가진 프로젝트가 알고리더가 처음이었습니다!! 그리고 해커톤에서 처음 수상을 해본 거라서 저한테 뜻깊었던 것 같습니다.

top4에 들어서 8월 말에 있을 중국 해커톤에도 나가게 되었는데요, 거기서도 지금 팀원들하고 으쌰 으쌰 해서 쓸고 오겠습니다!! 후기는 여기까지 끝!

This is my very first blog post. After attending Open Hack, a hackathon that was really meaningful to me, I saw so many developers out there blogging and decided to finally start the tech blog I'd only been thinking about.

 

Open Hack is a hackathon where about 4 representative students from each university designated as a Software-Centered University come together to hack!

 

When I was writing the Open Hack application, it was exam season, so I just spent 30 minutes on the subway to school frantically copy-pasting my existing portfolio. I never thought I'd actually get in!! When the department office contacted me saying I was selected as an Open Hack participant, I thought I'd study up on development after finals and then go. But after finals, I got totally burned out and couldn't do any coding at all. Then after going to Open Hack and meeting so many great people and getting such positive inspiration, I'm ready to get fired up again as a developer!

 

Let's get this review started!

 

 

This is really a very personal review.

 


 

Day 1

- Dev seminars

- Self-introductions

- Idea pitching

- Team building

- Development

 

Day 2

- Code code code

- Mentor tables for mental care

 

Day 3

- Development

- Presentations

- Awards

- Networking


Day 1

Checking the Open Hack Schedule

Open Hack Schedule

 

Open Hack was held at the Iksan Western Life Hotel.

 

In our school's case, all the Ewha developers booked the same KTX car so we all traveled together. We ate together and chatted about finals and professors and got a bit closer. We all took a group photo!! We said we had to take it while we still looked our best haha

 

The goodies they gave us as soon as we walked in!!! I was so happy!! I've kept all the name badges from every hackathon I've attended, and Open Hack had the best swag! Especially those badges — they were so cute I just had to grab them all!!


Dev Seminars

After getting our goodies, I went up to the 3rd floor and attended sessions on AI, development, and open-source software. I actually came up to the 3rd floor to attend a different session since I was already pretty familiar with GitHub from doing projects, but the sessions were really great!!

 

1. AI Seminar

Honestly, I'm more interested in web development than AI or blockchain, so this was an unfamiliar field for me. But the speaker was so nice about taking questions, and I really appreciated that! Looking at my notes from the talk now, hmm, definitely some unfamiliar terms!!
I remember the speaker explaining the concepts of mortal and contract — they used movie examples to explain whether or not external access to AI should be allowed.

 

2. Docker + Cloud Server Development Seminar

This seminar was personally the most helpful one for me. 
I'd been curious about Docker environments and AWS load balancers beyond just nginx, and the speaker demonstrated the entire development process and code from scratch, so I felt like I finally got a grasp on it. 
I wrote down the flow of each piece of code from the slides, and the overall flow as I remember it is:

 

AWS Server Setup

 - Create AWS EC2, connect via SSH

Install DOCKER (using Docker Hub remote server)

 - Create IMAGE (similar concept to GitHub?)

   > (GitHub repository - Docker Hub repository)

   > (source code - image(container): saves server environment)

Domain connection (AWS Route)

Create ELB (Load Balancer)

 - Create a security group for ELB beforehand

 - Add ELB to EC2 after creation

 

The most memorable part was seeing the speaker walk through the entire flow of Docker commands. I'd been meaning to study Docker at hackathons but kept putting it off due to time constraints. Getting an overview of the deployment concept tied together with AWS was such a huge asset for me! I'm definitely going to study this and blog about it!!

 

3. Open Source Seminar

The open source seminar was led by the developer of the Korean Word Clock. Wow, I'd used it before and thought the creator must be incredible — then I found out they were a year younger than me and I was genuinely shocked. The CS world is overflowing with talented people!!

 

Among the things the speaker mentioned, the advantages of open source were:

1. Raising issues

2. Requesting feature improvements

3. Strengthening code quality

4. Easy program distribution

 

There were four points like this, and I asked two questions.

 

Q. If program distribution is easy, it seems like you publish exe files on GitHub — what branching strategy do you use?

 

A. I use git flow. (Yay, a concept I actually know!) I implement features on feature branches, merge each feature branch into the develop branch, and then deploy the actual service from the master branch.

 

Q. In open source projects, you often encounter languages other than your main language (Java) and multiple languages intertwined — how do you read through the code?

 

A. Most open source projects are large-scale projects (Chrome, Android, etc.) so they do mix multiple languages. So what I do is — every language has something that serves the role of a main function, right?! I start from the main function and follow along from there! It's okay even if you don't understand everything!

The answer to the second question was especially helpful for me.

 


Self-Introductions

After the seminars, we had self-introductions where nearly 200 people — participants, mentors, and organizers — all introduced themselves. Everyone briefly shared their school, tech stack, and thoughts on coming to Open Hack.

 

Yes, the one who said they wanted to build a fun service with the League of Legends API was me lol

Personally, I always thought the LoL API was really diverse and well-documented, so I mentioned it on the spot. But right after saying it, I checked the API docs and realized that unless I developed with Spring, the learning curve for other frameworks would make it take too long to pass the API to the client — so I scrapped the idea! Hehe


Idea Pitching

Finally, idea pitching time!!

Each person came up one by one to present their ideas! I was actually thinking about going up because I wanted the badge, but then an idea I really liked (our team's AlgoReader!!!) came up, so I stayed put just in case!!! I might get picked.

 

Among them, the one that definitely stood out was the person who pitched a sex-education-related service!! They pushed through despite the MC's teasing comments, and I personally thought that was really cool!


Team Building

After the idea pitching, we put stickers on the idea descriptions posted on the walls, and the ideas with the most stickers were selected as final ideas. Then the PMs of the selected ideas walked around with their idea sheets, recruiting developers — it was quite a sight!

Our team was AlgoReader! The idea was to input your Baekjoon algorithm ID and it would categorize and visualize the problems the user has solved. I made my case to our PM by telling them I put all three of my stickers on their idea!


Start of Development

We started developing with a team of 5: 2 backend + 2 frontend + 1 designer!

On the first night, we all ate dakgangjeong (sweet crispy chicken) together and chatted. At that point I had no idea everyone would turn out to be such bright and cheerful people!! While coding, we had so much fun, and even when errors popped up, someone would say "Hmm, even this error looks pretty!!" and compliment it. They were all such kind people ㅜㅜ

I especially got really close with our designer Sohyeon, which was great ><

 

After that we decided on our tech stack:

 

Frontend was Vue.js and backend was Django!


Day 2

Code Code Code!!

1. Web Scraping

 

Since we needed to use Baekjoon Online Judge, I looked for a Baekjoon API, but Baekjoon's response was:

 

But there was no API ㅜㅜ So in the end, I ended up being in charge of web scraping using Python's Beautiful Soup.

 

While developing, using a language I wasn't used to definitely led to constant errors.

In my case, most of the errors were type errors... Since I'd been developing in Java where IntelliJ checks all the types for you, I'd never run into these kinds of issues before, which made it even harder!

2. Django!!!!

For the REST API to communicate with the client, we used Django.

Django definitely makes it quick to implement APIs, but the part that actually gave me trouble was the environment setup ㅜㅜㅜ I finally understood why my friends who develop in Python love Docker!

 

But having worked with various frameworks, I felt like I picked things up pretty quickly! Just like package.json in Node.js and Gradle/Maven in Spring, I learned that Django also needs a requirements.txt file. I also noticed that the way Django handles DB migrations felt similar to how Ruby does migrations.


Mentor Tables for Mental Care

So! When I was running into those issues above! Especially when struggling with environment setup, I went to the mentor tables, and everyone was so kind — they brainstormed with me and helped me solve things. I was really grateful.

 

Doojin, who was on my team at Hack Day, helped solve the issue where the .gitignore file wasn't working (the problem was caused by trying to ignore files that were already tracked).

 

Hyunseok, who I knew from Likelion (멋쟁이 사자처럼), went around with me looking at Django code and asking people nearby about the Python environment setup — I was so thankful! And then Jaeho from Danggeun Market (Karrot) swooped in and solved everything, so development went smoothly after that!! haha

 

On top of that, when I didn't know how to create a requirements.txt file for the Java-side and couldn't install certain modules so Django wouldn't run, mentor Cho Cheolhyun from DevOps Korea solved that too.

 

Seeing how each mentor looked at our code line by line as if it were their own problem really moved me. This hackathon made me realize that just because I'm a Java developer doesn't mean I should only stick to Java — I should try to broaden my stack little by little.


Day 3

Development

In my case, I finished fixing the scraping API and went upstairs to catch some sleep, but our frontend developers said they didn't sleep at all — I felt so bad ㅜㅜ So as soon as I woke up and ate, I quickly wrote up the README.md and server architecture documentation and prepared for the presentation.


Presentations

A few members from each team stayed at their table to demo and present, while the rest walked around to visit other tables. Each person could vote for up to 3 other teams, so the judging criteria were quite different from a typical hackathon!

Personally, I found it much more engaging since it wasn't the usual format where each person pitches on stage — instead, everyone could directly interact with the demos and ask questions.

 

The project I personally thought was really impressive was from Team 15 — they built an Android text editor library. Most hackathon projects target general users, but a service targeting developers like this one was refreshing!! So I naturally expected them to be among the award winners!!

 

Our team also demoed our hearts out!!

While we were demoing, wow... we even saw someone ranked around 120th in algorithms — that was amazing!


Awards

Drumroll please... so our team!!

We got 2nd place!!!

Honestly, a lot of people seemed to enjoy our demo, so the team was expecting maybe 4th place at best. When our name wasn't called, everyone had already given up lol. So when we were called as the 2nd place team, everyone was so stunned — suddenly the whole venue went silent!!!

Everyone was so happy, and we took a commemorative photo!

We talked later and I'm currently pushing hard to make some tweaks to both the AlgoReader server and frontend so I can deploy it with a custom DNS!!


Networking

After the awards and group photo, there was a networking session over dinner. I was chatting with my teammates, but then I heard there was a table where women developers were sharing their stories, so I went over to listen. Hearing from Google Product Manager mentor Haemin Lee and Microsoft mentor Mijeong Jeon, I honestly got a bit worried. The stories of hardships they faced as women developers felt like things that could happen to me too. But as I kept listening, I realized these mentors persevered through all those difficulties, knowing that what they wanted to do — their career — was development. They genuinely enjoyed solving bugs and truly loved coding. So instead of worrying and overthinking about how hard things might be ahead, I decided to try all sorts of things as a developer and have fun coding, just like at this hackathon!


Wrapping Up

This is truly a hackathon I'll never forget. Both the people I already knew and the new connections I made here are all so precious to me. I've been to about 7 hackathons so far, but AlgoReader is the first project I've felt so attached to that I actually want to deploy it for real!! And since this was my first time ever winning an award at a hackathon, it made the experience extra meaningful.

Since we made top 4, we'll also be going to a hackathon in China at the end of August. We're going to rally together with our current teammates and bring it home!! That's a wrap on this review!

댓글

Comments