728x90
반응형

오늘은 2회차 고랭 강의!

자꾸 미뤄서 듣게 된다.. ㅎㅎ 5분도 안되는 영상들인데 뭔가 다른 일들에 밀려 듣게 됨.. ㅎㅎ

 

오늘은 Go syntax 재목의 강의를 요약해 보았다.


Go syntax

 

Case sensitive 함 => 대소문자 구별을 한다는 것

Function, 변수명, 타입이름 등의 Identifier 들은 모두 document에 나와있는 그대로 써야함 

 

변수와 package 이름들은 소문자거나 대소문자 합쳐져있음

그러나 public fields의 첫 글자는 대문자임

 

여기서 첫 글자가 대문자라는 것은 그 symbol은 exported 라는 것!

반대로 말하면 첫 글자가 소문자라는 것은 private이고 대문자면 public.

 

go는 타이핑을 줄임

; <- 와 같은 세미콜론 입력하지 않아도 됨

lexer라는 애가 필요하면 알아서 추가함

그러나 탭이나 띄어쓰기와 같은 whitespace에는 민감하니 조심!

 

Code bloc은 괄호나 대괄호와 같은 braces 로 묶임

 

코드에서 언제나 쓸 수있는 package가 있는데 이것을 builtin package라고 부름

자바에서는 import 해야했던 것을 그냥 쓸 수 있다는 말!

예를 들어 len(string), panic(error),  recover() 과 같은 것들

 

더 참고할 만한 builtin package 설명은 공식문서를 참고!

https://golang.org/pkg/builtin

 

builtin - The Go Programming Language

Package builtin


자바나 다른 언어와 달리 builtin 을 import 없이 쓸 수 있다는 점을 알아차리지 못하고 있었는데 알아차리니 신기하군.. 

깊게 들어가면 어려우니 일단 쓸 수 있게만 써봐야지 ㅎㅎ

728x90
반응형
728x90
반응형

벌써 2주차는 시작되었고 1주차는 오늘 정리한다.

 

지난주 발목뽀각사태로 인해 내내 칩거 아닌 칩거를 했다.

회사는 내내 재택 때리고 집에서 열심히 업무 마무리 & 새로운 업무 사태(?) 파악 ㅋㅋㅋㅋ 을 하고 진짜 집 밖으로는 한 발자국도 나가지 않았다. (목요일 병원 진료 빼고..) 그 와중에 기계처럼 규칙적으로 생활했다.

7시 40분쯤에 일어나서 출근하고.. 일하다가 쉬다가.. 퇴근하고 밥도 먹고 아 옷장 한칸씩 정리하고(재택이라 가능한 것) 띵가띵가 놀다가 1시 조금 안돼서 잠이 든다.

 

그 와중에 몇 가지 하기도 했는데,

 

1. GGLTM 스피치

모임에 온 사람들이 더 많았으면 좋겠지만 몇 안 되는 멤버들이더라도 내가 준비한 연설을 했다. 제목은 "Toastmasters Spirit".

이제 Personal story + 토마 짱! 을 나름 잘 섞어 연설하는데 도가 튼 것 같다. 세계 여행하며 방문한 토마 이야기와 그래서 왜 Toastmasters Spirit이며 왜 주변 사람에게 토마를 추천해야 하는지에 대해 잘 녹여 연설을 했다.

6며으로도 재밌게 연설하고 모임할 수 있다구! + 내가 받은 코멘트 💕

언제나 우리 토마에 함께하고 싶다면 댓글로 남겨주세요 히힛 

 

2. 고랭 스터디

요즘 고랭 스터디를 하고 있다. 사실 업무에서 고랭을 사용하진 않지만 알아두면 좋다 + 고랭 대세(?) 라기에 ㅋㅋㅋ

그리고 단순히 언어를 배운다기보다 언어를 배우며 개발 아키텍처나 개발 방법, 알고리즘 등등 다양하게 커리어에 도움이 될 것 같았다. 어쩌다가 스터디 리더를 맡게 되어 스터디 그룹 신청 등 이것저것 맡아하게 되어 부담스럽기도 하지만 역시 난 리더형이라며 ㅋㅋㅋ 내가 하는 게 편하다며 나름 열심히 하고 있다.

최근에 다룬 개발 방법에는 TDD가 있었다. 그냥 TDD로 문제를 풀고 코드를 올린 게시물이긴 한데 조심스레 투척... https://haonly.tistory.com/76

 

[프로그래머스] 내적 | TDD로 풀어본 연습문제 | 고랭 | Go TDD

사내 스터디에서 TDD를 배워봤다. 앞으로 고랭 문제나 모듈 개발할 때 TDD를 활용하면 좋겠다고 생각했다. 그래서 이번 주 스터디 문제를 TDD로 풀어보았다. 다행히 이번 주 스터디 리더가 쉬운 문

haonly.tistory.com

지금 보니 넘 쉬워서 굳이...? 이긴 싶지만 ㅋㅋㅋ 다음에 기회가 된다면 TDD도 정리해야겠다. 

이 외에 고랭 TDD 테스트 코드 템플릿? 포멧? 도 스터디원들과 공유해서 좋은 코드를 가지고 있으니 공유해야지!!

 

3. 다리는 다쳤지만 클라이밍은 하고 싶어.

일주일 동안 돌을 안 잡고 벽을 안 탔더니 뭔가 답답.. + 살이 조금 찌는 느낌이 들었다. 실제로 몸무게가 1.5kg 정도 늘었다 ㅠㅠ

그래서 턱걸이라도 틈틈이 10개씩 (물론 밴드의 도움을 받아) 해 주었다.

토요일이 되니 다리도 크게 아프지 않고, 살살해볼 만할 것 같아 학교 선배 오빠와 언니 + 형부를(??) 꼬셨다. ㅋㅋㅋㅋ 이게 무슨 조합이야.

언니 + 형부가 삼계탕을 사주어서 몸보신을 하고 암장에 가 올랐다 내렸다 몇 번 해주었다. 

특전사 출신 형부는 첫날부터 엄청 잘해서 신기했고 운동 1도 안 하는 언니는 진짜로 1도 못해서 신기했다. 그래도 다들 재미있었다고 한다!!

근데 내가 클라이밍 했다고 하니 누가 이 사진을 보내줬다. 고통이 없어지더라도 회복이 다 된 것은 아니라는.. ㅋㅋㅋ 조심하겠습니다.

다음날(오늘) 일어나니 몸무게가 2kg가 빠졌고(ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ) 살짝 근육통 + 피곤함이 있다. 

또 평일 한 주는 쉬다가 다음 주말에 살살해봐야지 낄낄 누가 말려~

728x90
반응형
728x90
반응형

사내 스터디에서 TDD를 배워봤다. 

앞으로 고랭 문제나 모듈 개발할 때 TDD를 활용하면 좋겠다고 생각했다.

 

그래서 이번 주 스터디 문제를 TDD로 풀어보았다. 다행히 이번 주 스터디 리더가 쉬운 문제를 내서 TDD로 풀어볼 만했다.

문제는 아주 간단하다. 

문제링크

 

코딩테스트 연습 - 내적

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의

programmers.co.kr

입출력 예만 간단히 보여주자면 아래와 같다. 

 

나는 이제 이 문제를 그냥 접근해 볼 수도 있었지만 TDD를 활용해 test 코드를 작성하고 풀어보았다.

import (
	"testing"
	"github.com/stretchr/testify/assert"
)

우선 위 두 라이브러리를 import 해서 test 코드를 작성할 수 있도록 해주었다.

그리고 아래와 같이 전체 테스트 코드를 작성해 보았다. 조건이 두 가지뿐이었고 예시 케이스로만 테스트해도 모두 통과하기 때문에 두 예시에 대한 테스트 코드만 작성했다. 

전체 코드

package study_0603_1

import (
	"testing"
	"github.com/stretchr/testify/assert"
)

func Test1(t *testing.T) {
	a := []int{1, 2, 3, 4}
	b := []int{-3, -1, 0, 2}
	assert.Equal(t, 3, solution(a, b))
}

func Test2(t *testing.T) {
	a := []int{-1,0,1}
	b := []int{1, 0, -1}
	assert.Equal(t, -2, solution(a, b))
}

이 테스트 코드에 맞게 main 코드를 작성했다.

solution 코드

package study_0603_1

func solution(a []int, b []int) int {
	ret := 0
	for idx, _ := range a{
		ret += a[idx] * b[idx]
	}
	return ret
}

간단하네!?

 

끝!

728x90
반응형
728x90
반응형

다사다난 5월 마지막 주 회고!

 

월요일

한 주의 시작인 월요일부터 아주 열심히 살았다. 왜냐하면 다음날인 화요일이 회사 쉬는날! 이었기 때문에 (행-복) 완전 하이텐션에 다음날 놀 생각하며 신나 있었다.

퇴근하고 클라이밍도 가고(화요일에 놀아야 하기 때문에 미리 운동하는 클창의 삶..) 집으로 달려가 공부 봐주는 고딩 공부 확인하고 소윤이랑 독서모임도 했다. 

이번 독서모임에서 읽은 책은 '나미야 잡화점의 기적' 이라는 책이다. 예전부터 여러 사람에게 추천을 받았던 책인데 이번 독서모임의 기회로 읽게 되었다! 꼼꼼한 또우니가 재미있는 질문을 준비해 줘서 여러 가지 생각을 해볼 수 있었다. 이제 다음 모임은 내가 준비해야 하는데 아직 책을 못 읽고 있다 ㅠㅠ 어서 읽어야지!! 

다음 책은 '도시는 무엇으로 사는가'이다. 내가 좋아하는 유현준 교수님이 쓰신 책으로 '어디서 살 것인가' 도 읽고 회사에 강연도 오셨어서 더더 기대가 된다!

이렇게라도 또우니를 볼 수 있어 행-복

아 참, 모임 끝나고 GGLTM 오피서 미팅도 했다 ㅋㅋㅋㅋ 지옥의 스케줄이었네 월요일...


토마

모임의 산출물(?) 까지는 아니지만 GGLTM의 6월 플랜 포스터를 만들었다! 별 건 없지만... ㅎㅎ 요즘 참여율이 좀 저조한데 운영진으로써 열심히 노력해야겠다는 생각을 했다.. 그런데... 그거.. 어떻게 하는거냐구... ㅎㅎ

6월 플랜과 Informal 미팅 사진!

오피서 미팅 이후 모인 정규 미팅에서는 역할자가 많이 없어 (대학생들 시험기간 ㅠㅠ) informal 미팅으로 자유롭게 떠는 시간을 한 시간 정도 가졌다. 이것저것 이야기하며 서로를 알아갈 수 있었어서 종종 추진하면 좋겠다는 생각을 했다. 


휴무일!

후.. 5월에 쉬는 날이 3일이나 있다니... 너무 행복했다. 원래는 동기들을 만나려고 했는데 다들 안되고 딱 한 명만 된다고 해서 으.. 만날까 말까 고민하다가 둘이라도 신나게 놀자!라는 생각으로 만나게 되었다! 신입 교육 때부터 내가 끌여들인 영어모임까지 자주 보긴 했지만 온라인으로밖에 만난 적이 없다 ㅋㅋㅋ

그런 사람을 오프라인으로 만나려니 처음에는 어색해서 둘 다 티는 안 냈지만 눈을 못 마주치는(?) 그런 시간을 초반에 보냈다. 그치만 곧 와다다다 수다 떨며 친해졌고 내가 좋아하는 화성행궁도 걷고 맛있는 것도 먹으며 더 친해질 수 있었다.

게임에서 만난 사람 만나는 기분이었다는데 ㅋㅋㅋㅋ 무슨 기분일지는 알 것 같다. 

다행히 날씨도 걷기 딱 좋았고 집에만 있거나 다음날 출근인데 클라이밍 빡쎄게 하는 것보다 보고 싶던 동기를 만난 것이 훨씬 현명한 선택이었던 것 같았다. 곧 또 보기로 했으니 다른 동기들도 함께 봤으면 ~.~

화성행궁 길 좋아
여기는 내가 행리단길 갈 때마다 들르는 정주영커피. 힙하고.. 맛있어...


사소하고 행복한 것들

회사 뒤에 큰 마트가 하나 있는데 거기에 고양이 한 네 마리가 살고 있다. 사람들도 잘 따르고 오다가다 보면 햇빛이나 차 밑에서 늘어져 자고 있다. 아래 사진은 뭔가 배 뽈록 나와가지고 늘어져 자고 있는 고영희씨가 너무 웃겨서 찍어봤다.

배 뽈록 고영희씨

사실 화요일 휴일날 떡볶이를 먹고 싶어서 떡볶이집을 갔으나 화요일은 떡볶이집도 쉬는 날이라고 해서 떡볶이를 못 먹었다 ㅠㅠ 대신 파스타를 먹었지만 떡볶이를 오래전부터 먹고 싶었어서 결국 퇴근길에 청년다방에 들러서 포장해왔다! 그리고 집에서 조리하며 우삼겹도 넣어서 야무지게 뚝딱 먹었다.

야무진 버전의 내 떡볶이

한 가지 부작용은.. 맵지는 않았지만 밀가루여서 그랬는지 한 3일 동안 배가 계속 아팠다 ㅠㅠ 밀가루 조심..

 

회사에 푸드트럭이 왔다! 아이스크림, 음료수, 중국음식(?) 이런 것들을 팔던데 아이스크림이 인기가 많았다. 우리 팀 분들이랑 아이스크림 하나씩 먹으면서 소소한 점심 산책하고 들어갔다. 소소하지만 행복해... ㅎㅎ

신기해!

그리고 내가 좋아하는 소혀니를 만나 인도커리를 또 먹었다! 소현이 만난 날은 핸드폰 안 들고 간 건가... 사진을 하나도 못 찍었네 ㅠㅠ 

소현이가 보고 싶어서 만나자고 만나자고 하다가 결국에 내가 소현이 회사 근처로 가서 만날 수 있었다 ㅋㅋㅋ 소현이 집이 머니까... 이해해 ㅎㅅㅎ

아무튼! 오랜만에 만나서 이것저것 와다다다 수다 떨고 들어왔는데 '역시 주기적으로 만나야 하는 사람들이 있구나' 라는 생각이 들었다. 친구 만나서 수다 떠는 시간이 참 힐링이야 ~.~


토요일

요즘 토요일에는 클라이밍을 간다. 어디 가지 않는 이상 디폴트다.

이번 주는 토마 Division Director Training이 있어 오후에 출발했다. Division Director Training 에서는 내가 Division Director로써 가져야 할 자세와 해야 할 R&R 등을 교육받았다. 사실 내가 '악! 하고 싶어!' 라는 마음으로 시작한 역할은 아니라 부담스럽기도 했지만 이왕 하기로 한 것, 열심히 해봐야겠다는 생각을 하고 있었다. 

이렇게 교육을 들으니 해야할 것들이 정리가 되고 정말 리더로서 내가 임해야 하는 자세와 마음가짐에 대해 돌아볼 수 있었다. 준비해주신 트리오에게 감사를... 🙏

 

이번 주 클라이밍에서는 못 깨던 문제 여러 개를 깰 수 있었다. 그래서 진짜 찐- 행복이었다. 내 친구 효정이도 데려가서 효정이도 재미있게 하고 동기 오빠들이랑 진짜 재밌게 운동했다.

이 전엔 서지도 못했던 찐 파랑과 길이가 짧아 포기했지만 이번에는 완등한 초록!

문제는 이다음이었다. 몇 번의 시도 끝에 오버행의 문제를 풀었는데 푸는 과정에서 완등 홀드 놓치고 떨어지면서 아쉬워서 그 홀드를 바라보며 떨어지다가 착지를 잘못했다. 발목이 지끈 하고 아팠는데 금방 괜찮아져서 이후에도 씽씽 잘 돌아다니고 문제도 몇 개 더 풀었다.

심지어 씻고 밥 먹을 때 까지도 말짱했다 ㅠㅠ 다 같이 저녁으로 부대찌개를 먹으러 가서 맥주 두 잔을 하고 맛있게 먹고 일어나는데 갑자기 발목이 찌릿하며 서지를 못했다. 발목이 완전 나간 것이었다... ㅜㅠㅠ

효정이가 부축해줘서 겨우 동네 쪽으로 와서 응급실을 갔는데(효정이가 업어주고 부축해주고 밀어주고 진짜 완전 쌩난리였다... ㅠㅠ 미안해 효정아...) 맥주를 마셔서인지 깽깽이로 오기도 하며 더웠는지 미열이 있었다.(근데 거기 체온계가 이상한 것 같기도하고..) 

그래서 진료는 못 받고 집으로 돌아왔다.. 샤워도 욕조에 걸터앉아 하고.. 새벽에 화장실까지 기어갔다가 기어 오면서 아프고 무서워서 찔찔 짜고 ㅠㅠ 아주 고통스러웠다.

오늘 아침 일어나자마자 응급실을 다시 갔다. 다행히 35도 ㅋㅋㅋ 진료를 받는데 뼈에 금 간 건 2-3일 지나서야 보이는 경우도 있다고 한다. 그래서 일단 엑스레이 찍고 CT도 찍어봤는데 크게 뭐가 안 보여서 인대나 근육이 늘어나거나 부분 손상일 것이라고 반깁스에 목발 받아왔다.

진짜 이게 무슨일...

심하게 다친 거라면 한 달까지 깁스를 해야 한다고 한다... 근데 다친 발을 땅에 디디는 것조차 아프다.. 심하게 다친 것 같다.. 

다음 외래 진료할 때 자세히 봐야겠다 ㅠㅠ 당분간은 클라이밍 못할 듯..

728x90
반응형
728x90
반응형

파이썬... 

 

sql 문장을 만들거나 어떠한 이유로 python 코딩을 하다가 다중 라인의 스트링을 입력해야 할 때가 있습니다.

심지어 변수도 들어가게 되면 코드는 더러워지게 마련입니다.

 

문제는 없지만 보기가 너무 더럽고 관리하기 어려우니 여러 해결 방법이 있습니다.

https://stackoverflow.com/questions/10660435/pythonic-way-to-create-a-long-multi-line-string

 

Pythonic way to create a long multi-line string

I have a very long query. I would like to split it in several lines in Python. A way to do it in JavaScript would be using several sentences and joining them with a + operator (I know, maybe it's n...

stackoverflow.com

제가 참고한 글입니다.

 

아니면 f-string이었나? string intnerpolation 이라고 

f"""value1={value1}""" 이렇게 값을 감싸고 문자열에 바로 변수 값을 집어넣는 기능을 사용할 수 있습니다.

 

이 방법의 경우 파이썬 3.5부터 지원됩니다.

728x90
반응형
728x90
반응형

MSA: Microservice Architecture 약자로 문장으로 정리하자면 아래와 같다습니다

"하나의 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐"

 

작은 서비스들을 만들어 합쳐 하나의 어플리케이션으로 만든다는 개념으로 컴포넌트들의 조합이라고 이해했습니다.

 

등장 배경

MSA 반대 개념은 Monolithic Architecture 소프트웨어의 모든 구성요소가 프로젝트에 통합되어 있는 형태입니다.

아직까지 개발하기 간단하다는 장점으로 많은 소프트웨어가 Monolithic 형태로 구현되어 있습니다.

 

하지만 규모의 개발 프로젝트에서는 한계와 단점 존재한다고 합니다. 아무래도 규모의 개발을 진행할 때는 빌드 테스트 하는 시간이 오래걸리고 전체 시스템 구조를 파악하는 것이 쉽지 않기 때문입니다.


제가 이해하기로는 규모의 온라인 주문 사이트에서 MSA 형태의 개발을 하겠구나 싶었습니다.

 

그래서 이번에 고랭으로 MSA에서 흔히 일어날 잇는 상황에 대해서 효율적인 처리를 연습해볼 있도록 Context 사용한 예시를 개발해 보았습니다. (개발 하면 링크 넣을 것… ㅎㅎ)

쿠팡에서 테크 블로그(?) 비슷하게 MSA 에 대해 정리해 글도 있더라구요.

쿠팡 - 행복을 찾기 위한 우리의 여정

 

행복을 찾기 위한 우리의 여정,

쿠팡의 MSA — Part 1

medium.com

 

 

참고할 사이트:

lion-king.tistory.com/entry/MSA-distributed-transaction

 

(MSA 분산 트랜잭션) 주문-재고관리 어떻게 하지?

MSA 분산 트랜잭션 MSA distributed transaction 일반적으로 온라인 커머스 서비스를 하고, 재고가 존재하는 상품을 판매 한다면 주문 - 재고차감- 결제 등의 프로세스가 필요할 것이다. 위 프로세스는 일

lion-king.tistory.com

medium.com/coupang-tech/%ED%96%89%EB%B3%B5%EC%9D%84-%EC%B0%BE%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%9A%B0%EB%A6%AC%EC%9D%98-%EC%97%AC%EC%A0%95-94678fe9eb61

 

행복을 찾기 위한 우리의 여정,

쿠팡의 MSA — Part 1

medium.com

www.popit.kr/msa%EC%97%90%EC%84%9C-%EB%A9%94%EC%8B%9C%EC%A7%95-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0

 

MSA에서 메시징 트랜잭션 처리하기 | Popit

비동기 메시지를 사용하여 상호 간에 통신하는 방식을 메시징 Messaging[1] 이라고 부른다. 마이크로서비스 환경에서 비동기 처리 시 보통 카프카 Kafka 나 래빗엠큐 RabbitMQ 같은 메시지 브로커 Message

www.popit.kr

velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-3sk28yrv0e

 

MSA 제대로 이해하기 -(1) MSA의 기본 개념

lego-708086_1920.jpg 마이크로 서비스 아키텍쳐를 한마디로 다음과 같이 표현할 수 있습니다. "하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아

velog.io

jaehue.github.io/post/how-to-use-golang-context/

 

728x90
반응형

+ Recent posts