오늘 한 일

  • Vue 3로 마이그레이션 된 코드 중 css와 언어 설정 관련한 부분을 조금 손봤다. 분명 코드 생긴 모양은 좀 다를지언정 내용 자체는 크게 차이가 없는데 원하는 대로 동작하지 않는 게 참 이상했다. 아직도 왜 다르게 나오는지 모르겠는 것들이 좀 있어서 100% 돌려놓지는 못했지만 차근차근 작업해 나가고 있다. 한 번 잘라서 pr 날렸을 때의 왠지 모를 안도감이란
  • 누군가 무슨 일로 슬랙 토코톡 워크스페이스에서 나를 멘션 했나 했더니만, 로그인 폼에서 비밀번호까지 입력한 후 엔터 키를 누르면 로그인 버튼이 눌리게 해야 한다는 내용의 대화가 오가고 있었다. 앗 전혀 생각 못함!
  • 메인에서 브랜치를 따려니까 pr 날리려면 카드 넘버가 있어야 했던 것 같은데 그러고 보니 카드가 없다. 카드 만드는 건 어떻게 하는 거지...!? 모를 땐 헬프!
  • 도움을 받아 카드를 만들고 나서 생성된 카드 넘버로 브랜치를 따서 작업을 했다. 구글링 해보니 해결책이 생각보다 간단해서 추가한 코드는 사실상 두 줄뿐이었다.
  • 그리고 아직도 익숙하지 못한 Vue 3 코드를 잡고 낑낑대는 중.. 내가 원하는 그 모양새 왜 안 나오냐고 엉엉

오늘 배운 것

  • 아래 링크에는 @keyup을 사용했지만 나는 @keypress를 사용해봤다. 어떤 키 코드를 입력했는지 따로 확인하지 않아도 @keypress.enter면 해결된다니 이보다 간결할 수가 있을까.
 

Vue.js 엔터키 입력 처리

Vue.js 엔터키 입력 처리 keyup 이벤트를 사용한다. 1<input v-on:keyup.enter="submit"> 짧게 표현도 가능하다. 12<!-- also works for shorthand --><input @keyup.enter="submit"> 출처 https://vuejs.org/v2/guide/ev

jacegem.github.io

  • forEach는 언제 쓰나 했는데 map을 사용할 상황에서 return을 굳이 할 필요가 없을 때, 배열을 굳이 반환하지 않아도 될 때 쓰면 좋을 것 같다.
 

[Javascript] Array Method - for each 와 map함수의 차이

study 05.forEach(): Array 요소를 제공된 함수로 한 번 실행합니다.콜백 함수를 인자로 받아, 배열의 각 요소에 콜백함수를 실행한다. 아무 값도 반환하지 않는다.일반적인 forEach문은 다음과 같다.forEac

velog.io

 

오늘 한 일

  • 오늘은 지난 주에 이어 Go를 더 봤다.
  • 별 문제 없이 잘 흘러가고 있다 싶을 때, 슬라이스를 만났고.. 처음에는 이해가 좀 된다 싶었다. 이 링크를 만나기 전까지는.
  • (이건 나 혼자만 이해할 수 있는 끄적임..ㅠㅠ) 슬라이스의 length와 capacity가 어떻게 다른지, 무슨 차이가 있는지도 알겠고, append 할 때 append 하려는 요소의 개수가 슬라이스의 capacity를 초과하는 경우 capacity가 기존의 2배로 늘어난다는 것도 알겠다. 그런데 length = 0, capacity = 0 인 슬라이스에 0, 1, 2, 3, 4를 append 하면 왜 갑자기 length = 5, capacity = 6이 되냐고.. 0, 1, 2, 3을 append 할 때까지는 length와 capacity가 같은데. 마침 허들을 걸어주신 Kei님께 여쭤봤더니, 메모리 단편화를 지양하고 메모리 최적화를 달성하기 위한 Go만의 방법이 작용한 결과일 것이라는 답변을 받았다. 그리고 지금 당장 깊게 파고들어야 하는 문제도 아닌 것. 그래서 여기다 keep 하고 넘어간다 ㅠ.ㅠ 날코딩이긴 한데 미래의 나에게 맡긴다 흑흑.. 애초에 궁금했던 건 아래 코드 중 2번 케이스에 해당한다(capacity가 1 -> 2 -> 3 -> 4 -> 6 -> 8 순서로 늘어난다). 1번은 2번처럼 날코딩이 아닌 방식으로 해보려고 배열의 배열을 생성해서 시작했더니 capacity가 1 -> 2 -> 4 -> 8 순서로 늘어난다. 미래의 내가 다시 돌아왔을 때 '얘는 뭐 이런 쉬운 걸 고민해ㅋㅋ'라고 했으면 좋겠다. 제발
// https://go-tour-ko.appspot.com/moretypes/15
// https://go.dev/play/p/OKtCFskbp2t

package main

import "fmt"

func main() {

	fmt.Println("##### 1번 케이스 #####")

	var array [8][]int
	for i := 0; i < 8; i++ {
		for j := 0; j <= i; j++ {
			array[i] = append(array[i], j)
		}
		printSlice(array[i])
	}

	/*
	len=1 cap=1 [0]
	len=2 cap=2 [0 1]
	len=3 cap=4 [0 1 2]
	len=4 cap=4 [0 1 2 3]
	len=5 cap=8 [0 1 2 3 4]
	len=6 cap=8 [0 1 2 3 4 5]
	len=7 cap=8 [0 1 2 3 4 5 6]
	len=8 cap=8 [0 1 2 3 4 5 6 7]
	*/

	fmt.Println("##### 2번 케이스 #####")
	var a, b, c, d, e, f, g, h []int

	a = append(a, 0)
	printSlice(a)
	
	b = append(b, 0, 1)
	printSlice(b)

	c = append(c, 0, 1, 2)
	printSlice(c)

	d = append(d, 0, 1, 2, 3)
	printSlice(d)

	e = append(e, 0, 1, 2, 3, 4)
	printSlice(e)

	f = append(f, 0, 1, 2, 3, 4, 5)
	printSlice(f)

	g = append(g, 0, 1, 2, 3, 4, 5, 6)
	printSlice(g)

	h = append(h, 0, 1, 2, 3, 4, 5, 6, 7)
	printSlice(h)

	/*
	len=1 cap=1 [0]
	len=2 cap=2 [0 1]
	len=3 cap=3 [0 1 2]
	len=4 cap=4 [0 1 2 3]
	len=5 cap=6 [0 1 2 3 4]
	len=6 cap=6 [0 1 2 3 4 5]
	len=7 cap=8 [0 1 2 3 4 5 6]
	len=8 cap=8 [0 1 2 3 4 5 6 7]
	*/
}

func printSlice(s []int) {
	fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
}
  • Kei님의 제안으로 태초마을 주민이 되었다. 나도 이제 포켓몬 트레이너...!? 이것과 관련해서 내일 미팅부터 시작해서 뭔가 펼쳐질 것 같은데 재밌을 것 같아 기대도 되고, 내가 뭐라도 할 수 있을까 싶어 걱정도 된다.
  • 전화영어 신청했다! 영어 공부도 할 거야, 이제.. 나만 영어 못할 수 없어ㅠㅠ

오늘 배운 것

  • 궁금한 게 있으면 바로 질문하고, 이걸 지금 계속 고민할 필요가 있는 것인지 짚고 넘어가도록 하자.

+ Recent posts