I love Bear

REAL WORLD

Try, you lose nothing

profile

이름: 구 일 모

소속: codestates

하는 일: 개발, 협업, 글쓰기

장점: 이것 저것 많이 한다

단점: 이것 저것 많이 한다

내가 좋아하는 것?

내가 잘 하는 것?

vs

좋아한다고 생각했던 것

REAL LIFE

대학교 - 성적 망함

대학원 - 실험 망함

전자, 하드웨어, 프로그래밍 너무 어려워서 절대 근처에도 가지 않기로 다짐

성경공부 5년 동안 매 주 금요일 3시간 씩

성경 공부 하면서 논리력을 배움

교회에서 리더를 맡으면서 말하기를 배움

 

자칫하면 신학교 갈 뻔 함

결과론적 예정론에 빠짐

개혁주의 신학에 빠짐

 

은사주의, 한국 샤머님즘, 기복 신앙, 십일조, 건축헌금 비판 시작

도스토예프스키에 빠짐

커스텀 지우드 통기타

점심 2달 굶어가면서 돈 모아서 구매

사실 옛날에 교회 다니기 시작한 이유는 공짜로 기타 가르쳐 준다고 해서.. 음악 감각 전무한데 좋아서 계속 배움

혹시 기타로 유투브 스타 할 수 있지 않을까 했는데 역시 재능이 없는 것으로 드러남 

좋아하는 것 !== 잘 하는 것

군 복무로 3년동안

납땜

납땜 엄청 잘함 !== 좋아하는 것

임베디드 하드웨어 소프트웨어에 흥미 가짐

드론 놀이터 추락 이후 좋아는 하는데 잘 하는 것 같지 않다고 판단

러시아 친구 바딤 드론 나랑 하루 만들고 프랑스 용병 군대로 가 버림

군 복무 끝나고 운 좋게 항공연구원에 들어갔는데

 

일 정말 끝내주게 성실하게 했는데 일 못한다고 사수한테 매일 혼남, 실제로 잘 못 했음

 

되게 열심히 하는데 성과 못 내는 인재가 최악의 인재라는 것을 깨닫게 됨

EBS에서 창업 관련 다큐 나왔는데 뭔가 창업 하면 있어보였음

그래서 나도 창업 한다고 하고 퇴사 함

기고만장 하다가 5개월간

백수 생활

그러면서 여러 집회에 참여
좋아하지도 않았고 잘 하지도 못함

그렇다고 집회 참여자가 다 노는 것은 아님

오해 노노

임베디드 배운다고 국비 지원 교육 받음

근데 임베디드 코딩 잘 못함

당시엔 코딩을 잘 못 해서 프로젝트 팀 안에서 욕 먹음

개발을 해야하나 싶음

미래는 자동차다

자동차

소프트웨어

당연히 잘 될 줄 알고 기고만장

회사 리서치 50개

지원 30개 / 1차 면접 탈락 10개

2차 면접 탈락 10개 / 최종 합격 5개

제일 가고 싶은 곳 억지로 합격

임베디드 소프트웨어 컨설팅 & 세일즈

여행하는거 제일 싫어함

제일 싫어하는 걸 해 봐야 할 것 같아서

하기 싫은 것들을 하기 시작

집에서 세계 여행 할 수 있음

집에 한국 놀러오는 외국인

모조리 초대하기 시작

 

1년 동안 외국인 매 주 초대해서 집에서 재우고 밥 먹임

창업 붐, 창업하라고 함

외국인 초대해서 밥 먹이는 서비스 

돈 안된다고 하지 말라고 했는데 원래 진짜 사업은

돈 안 되도 해야 한다고 우기고 계속 함

회사 형 꼬셔서 거기서도 초대

15,000원씩 참가비 받았는데 어떤 놈은 

돈 안내고 튐

이태원 월세 10만원 사무실 구함

그 전에는 월세 5만원 망한 미용실 사용

문제는 사무실에 화장실이 없음

팀원은 오늘의 유머에서 모집

개발자 2명, 디자이너 2명, 영업 1명 모집

월급 없이 밥 술 많이 사 줌

9개월 간 1주에 1번 모임 유치

9개월 간 영업 이익 언제나 마이너스

BEP가 뭐죠?

왠지 플랫폼이 있으면 성공할 것 같아서

워드프레스로 개발, 근데 느려서 개발자 팀원 구해서 PHP + AngularJS 로 개발 시작

FAILED

왠지 개발을 못 해서

망했다고 생각

 

프로그램 없이 구글 클라우드로

운영하는데 너무 힘들었음

study startup

왠지 스타트업을 몰라서 망한것 같아서 스타트업 관련 책을 거의다 구매해서 읽어버림 => 당장 도움 안 됌, 읽지 마셈

돌이켜보니 내가 개발자가 아니어서 망했었다고 생각함

그래서 개발을 배워야 겠다고 생각

BOOTCAMP

국비지원보단 왠지 있어 보여서 부트캠프 시작

이머시브에서 배운 아이디어로 창업
만들기 전에 25곳의 전국 공유 오피스 컨택 및 10곳 영업

그러나
참고로 이 서비스도 망함

freelancing

통장 잔고 없어서 외주 개발 시작

 

script.js line 2400줄 넘기 시작

BACKEND ENGINEER

사업 조언 구하러 갔다가 대표가 같이 해 보자고 하

꼬심 당해서 스타트업 조인

1년 같았던 3개월

영혼을 갈아서 개발

왠지 내 사업하는게 더 좋아보여서 

다시 프리랜서 + 솔로로 돌아 옴

from eval_param import Evaluate
import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure

import tkinter as tk
from tkinter import ttk
LARGE_FONT = ("Verdana", 12)
MID_FONT = ("Courier", 8)

class Blast(tk.Tk):

    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)

        # tk.Tk.iconbitmap(self, default="")
        tk.Tk.wm_title(self, "AIRBLAST PARAMETERS")

        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)

        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}
        frame = Main(container, self)
        self.frames['Render'] = frame
        frame.grid(row=0, column=0, sticky="nsew")

    def show_frame(self, cont):

        frame = self.frames[cont]
        frame.tkraise()

class Main(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="AIRBLAST PARAMETERS", font=LARGE_FONT, fg="blue")
        label.config(font=('Courier', 25))
        label.grid(row=0, column=0, columnspan=1, padx=10, pady=30)

        label_1 = tk.Label(self, text="Actual Stand-off Distance (D)[m]")
        label_2 = tk.Label(self, text="Net Explosive Quantity (Q)[kg]")
        label_3 = tk.Label(self, text="select your bomb type")
        label_4 = tk.Label(self, text="select your calc type")

        label_1.grid(row=1, column=0, pady=15)
        label_2.grid(row=2, column=0, pady=15)
        label_3.grid(row=3, column=0, pady=15)
        label_4.grid(row=4, column=0, pady=15)

        e1 = ttk.Entry(self, width=3)
        e2 = ttk.Entry(self, width=3)
        e1.grid(row=1, column=1, padx=10, pady=15)
        e2.grid(row=2, column=1, padx=10, pady=15)
        e1.focus_set()
        e2.focus_set()

        bomb_options = ["TNT", "RDX", "HMX", "Nitroglycerin", "CompoundB", "Semtex", "60% Nitroglycerin dynamite"]
        bomb_type = tk.StringVar(self)

        cal_options = ["air", "surface"]
        cal_type = tk.StringVar(self)
        print('cal_type.get()', cal_type.get())

        option_1 = ttk.OptionMenu(self, bomb_type, bomb_options[0], *bomb_options)
        option_1.grid(row=3, column=1, padx=10, pady=11)
        option_2 = ttk.OptionMenu(self, cal_type, cal_options[0], *cal_options)
        option_2.grid(row=4, column=1, padx=10, pady=11)

        so_dist = None
        ne_qty = None

        def set_TNT_EQ_FIG(val):
            if val == 'TNT':
                return 1
            elif val == 'RDX':
                return 1.185
            elif val == 'HMX':
                return 1.256
            elif val == 'Nitroglycerin':
                return 1.481
            elif val == 'CompoundB':
                return 1.148
            elif val == 'Semtex':
                return 1.25
            elif val == '60% Nitroglycerin dynamite':
                return 0.6

            return

        def callback():
            if e1.get() == '' or e2.get() == '':
                label_err = tk.Label(self, text="please type input values", fg="red")
                label_err.grid(row=5, column=1)
            # elif type(int(e1.get())) == int and type(int(e2.get())) == int:
            elif self.validateFloat(e1.get()) and self.validateFloat(e2.get()):
                label_ok = tk.Label(self, text="     all input values are OK     ", fg="green")
                label_ok.grid(row=5, column=1)
                so_dist = float(e1.get())
                ne_qty = float(e2.get())
                TNT_EQ_FIG = set_TNT_EQ_FIG(bomb_type.get())
                cal_type_val = cal_type.get()
                print('bomb type', bomb_type.get())
                print('cal_type', cal_type_val)
                # compute param using Evaluate Class
                if cal_type_val == 'air':
                    self.plot_air(so_dist, ne_qty, TNT_EQ_FIG)
                else:
                    self.plot_sfc(so_dist, ne_qty, TNT_EQ_FIG)

            else:
                label_err = tk.Label(self, text="please type integer input only", fg="red")
                label_err.grid(row=5, column=1)
                print('e1.get type', type(e1.get()), 'e2.get type', type(e2.get()))
            return
        ttk.Style().configure('white/gray.TButton', foreground='black', background='blue')
        btn_calc = ttk.Button(self, text="calculate", style='white/gray.TButton', command=callback)
        btn_calc.grid(row=5, column=0, padx=10, pady=20, sticky="E")

    def validateFloat(self, value):
        ENTRY = value.strip()
        if ENTRY == "": return # do noting if we don't have a value
        try:
            NUMENTRY = float(ENTRY)
            if NUMENTRY: return True
        except ValueError:
            print('the input value is not integer or float')
            return

    def plot_air(self, so_dist, ne_qty, TNT_EQ_FIG):
        param_result = Evaluate(so_dist, ne_qty, TNT_EQ_FIG)
        points = param_result.get_points()
        pt_air = points['air']
        pt_air_fr = pt_air['front-wall']
        pt_air_fr_pr = pt_air_fr['pr']
        pt_air_fr_ps = pt_air_fr['ps']
        pt_air_eq = pt_air['equivalent']

        pr_annotate = points['air']['outputs']['pr']
        ps_annotate = points['air']['outputs']['ps']
        td_annotate = points['air']['outputs']['td']
        tc_annotate = points['air']['outputs']['tc']
        te_annotate = points['air']['outputs']['te']

        f1 = Figure(figsize=(4,4), dpi=100)
        a = f1.add_subplot(111)
        a.set_title('Front-Wall Loading')
        a.plot(pt_air_fr_pr['x'], pt_air_fr_pr['y'])
        a.plot(pt_air_fr_ps['x'], pt_air_fr_ps['y'])
        a.plot([pt_air_fr_pr['x'][1], pt_air_fr_pr['x'][1]], [0, pt_air_fr_pr['y'][1]], '--')

        a.annotate('Pr: ' + str(pr_annotate), xy=(td_annotate*0.05, pr_annotate - 1))
        a.annotate('Ps: ' + str(ps_annotate), xy=(td_annotate*0.05, ps_annotate - 3))
        a.annotate('td: ' + str(td_annotate), xy=(td_annotate*0.8, pr_annotate*0.1))
        a.annotate('tc: ' + str(tc_annotate), xy=(tc_annotate*1.1, pr_annotate*0.05))

        a.grid(linestyle='-')
        canvas1 = FigureCanvasTkAgg(f1, self)

        f2 = Figure(figsize=(4,4), dpi=100)
        b = f2.add_subplot(111)
        b.set_title('Equivalent Loading')
        b.plot(pt_air_eq['x'], pt_air_eq['y'])

        b.annotate('Pr: ' + str(pr_annotate), xy=(te_annotate*0.05, pr_annotate*0.97))
        b.annotate('te: ' + str(te_annotate), xy=(te_annotate*0.7, pr_annotate*0.03))


        b.grid(linestyle='-')
        canvas2 = FigureCanvasTkAgg(f2, self)

        canvas1.show()
        canvas2.show()
        canvas1._tkcanvas.grid(row=1, rowspan=7, column=2)
        canvas2._tkcanvas.grid(row=8, rowspan=15, column=2)

        self.show_outputs('Air', points)


    def plot_sfc(self, so_dist, ne_qty, TNT_EQ_FIG):
        param_result = Evaluate(so_dist, ne_qty, TNT_EQ_FIG)
        points = param_result.get_points()

        pt_sfc = points['surface']
        pt_sfc_fr = pt_sfc['front-wall']
        pt_sfc_fr_pr = pt_sfc_fr['pr']
        pt_sfc_fr_ps = pt_sfc_fr['ps']
        pt_sfc_eq = pt_sfc['equivalent']

        pr_annotate = points['air']['outputs']['pr']
        ps_annotate = points['air']['outputs']['ps']
        td_annotate = points['air']['outputs']['td']
        tc_annotate = points['air']['outputs']['tc']
        te_annotate = points['air']['outputs']['te']

        f1 = Figure(figsize=(4,4), dpi=100)
        a = f1.add_subplot(111)
        a.plot(pt_sfc_fr_pr['x'], pt_sfc_fr_pr['y'])
        a.plot(pt_sfc_fr_ps['x'], pt_sfc_fr_ps['y'])
        a.plot([pt_sfc_fr_pr['x'][1], pt_sfc_fr_pr['x'][1]], [0, pt_sfc_fr_pr['y'][1]], '--')

        a.annotate('Pr: ' + str(pr_annotate), xy=(td_annotate*0.05, pr_annotate - 1))
        a.annotate('Ps: ' + str(ps_annotate), xy=(td_annotate*0.05, ps_annotate - 3))
        a.annotate('td: ' + str(td_annotate), xy=(td_annotate*0.8, pr_annotate*0.1))
        a.annotate('tc: ' + str(tc_annotate), xy=(tc_annotate*1.1, pr_annotate*0.05))

        a.grid(linestyle='-')
        canvas1 = FigureCanvasTkAgg(f1, self)

        f2 = Figure(figsize=(4,4), dpi=100)
        b = f2.add_subplot(111)
        b.plot(pt_sfc_eq['x'], pt_sfc_eq['y'])

        b.annotate('Pr: ' + str(pr_annotate), xy=(te_annotate*0.05, pr_annotate*0.97))
        b.annotate('te: ' + str(te_annotate), xy=(te_annotate*0.7, pr_annotate*0.03))

        b.grid(linestyle='-')
        canvas2 = FigureCanvasTkAgg(f2, self)

        canvas1.show()
        canvas2.show()
        canvas1._tkcanvas.grid(row=1, rowspan=7, column=2)
        canvas2._tkcanvas.grid(row=8, rowspan=15, column=2)

        self.show_outputs('Surface', points)


    def show_outputs(self, type_txt, points):
        label_output = tk.Label(self, text="OUTPUTS", fg="blue")
        label_output_type = tk.Label(self, text=type_txt)
        label_output_1 = tk.Label(self, text="Peak Incident Pressure(Ps) [kPa]")
        label_output_2 = tk.Label(self, text="Incident Impulse(Is) [kPa.msec]")
        label_output_3 = tk.Label(self, text="Peak Reflected Pressure(Pr) [kPa]")
        label_output_4 = tk.Label(self, text="Reflected Impulse(Ir) [kPa.msec]")
        label_output_5 = tk.Label(self, text="Shock Front Velocity(U) [m/msec]")
        label_output_6 = tk.Label(self, text="Arrival Time(Ta) [msec]")
        label_output_7 = tk.Label(self, text="Positive Phase Duration(T+) [msec]")

        label_output.grid(row=7, column=0, columnspan=1, pady=10)
        label_output_type.grid(row=8, column=1, pady=5)
        label_output_1.grid(row=9, column=0, pady=5)
        label_output_2.grid(row=10, column=0, pady=5)
        label_output_3.grid(row=11, column=0, pady=5)
        label_output_4.grid(row=12, column=0, pady=5)
        label_output_5.grid(row=13, column=0, pady=5)
        label_output_6.grid(row=14, column=0, pady=5)
        label_output_7.grid(row=15, column=0, pady=5)

        if type_txt == 'Air':
            outputs = points['air']['outputs']
        else:
            outputs = points['surface']['outputs']

        label_output_val_1 = tk.Label(self, text=outputs['ps'])
        label_output_val_2 = tk.Label(self, text=outputs['is'])
        label_output_val_3 = tk.Label(self, text=outputs['pr'])
        label_output_val_4 = tk.Label(self, text=outputs['ir'])
        label_output_val_5 = tk.Label(self, text=outputs['u'])
        label_output_val_6 = tk.Label(self, text=outputs['ta'])
        label_output_val_7 = tk.Label(self, text=outputs['td'])
        label_output_val_1.grid(row=9, column=1, pady=5)
        label_output_val_2.grid(row=10, column=1, pady=5)
        label_output_val_3.grid(row=11, column=1, pady=5)
        label_output_val_4.grid(row=12, column=1, pady=5)
        label_output_val_5.grid(row=13, column=1, pady=5)
        label_output_val_6.grid(row=14, column=1, pady=5)
        label_output_val_7.grid(row=15, column=1, pady=5)


app = Blast()
app.mainloop()
render.py
Displaying blast.png.

남자 개발자들을 타겟으로 남대문 도매 꽃 배달 사업 시작 -> 당연히 또 망함

Blogging

그래도 글은 꾸준히 씀

생각해 보면 옛날부터 글은 계속 끄적여 왓음

고등학교 때 부터 바이크를 타고 싶었음

좋아하는 거 - 축구, 풋살, 축구 게임, EPL 축구는 다 좋아함

4년 동안 조기 축구, 4년 동안 매일 일요일 아침 2시간 풋살 하고 있음

통장에 돈도 없고 사업은 해야겠고 해서 

비혼주의로 살아가고 있었는데

운 좋게도 받아주고 이해해주는 사람 만나서 

결혼까지 함

결혼 승낙 받기 위해서 장인어른께 PT 발표

코드스테이츠에서 도와 달라고 함

도와주기 시작

지금은

개발이 너무 재밌음

잘 하는지는 모르겠는데 약간 미쳐 있는 것 같긴 함

내가 좋아하는 것?

내가 잘 하는 것?

해 봐야 안다

해 봐야 한다

가 봐야 안다

가 봐야 한다

계획대로 되는게 있나?

 

빨리 해 보고 돌아온다

해 봐서 손해 없다

제대로 해 볼거면 미쳐본다

 

여러분들 모두 창업하세요

하루하루가 블록버스터

긴장감 100% 보장

나만 당할 수 없지

Q & A

는 아마 할 시간이 없을 겁니다

student experience - 구일모

By Codestates

student experience - 구일모

  • 380