공부 64

MySQL Workbench에서 DDL 스크립트 생성하기

MySQL Workbench로 생성되어있는 DB에 대한 DB스키마, 테이블, SP 등에 대한 스크립트를 생성해보자 1. 스크립트를 생성하고 싶은 DB에 접속한 뒤, 메뉴에서 Database → Reverse Engineer를 클릭한다.  2. DB 접속 정보를 적는다.  3. 스크립트 생성을 원하는 DB를 선택한다. (스샷에서 블러처리된 부분)  4. 해당 DB에서 스크립트를 원하는 항목을 체크한다.  5. 그러면 아래와 같이 Workbench에 새로운 탭이 뜨는데, 이 화면에서 다시 Database → Forward Engineer를 클릭한다.  6. 스크립트에 대한 옵션을 체크한다.Foreign Key를 생성할지 말지, 저장된 데이터까지 스크립트화 할지 등의 여부를 선택할 수 있다.  7. 스크립트 ..

공부/기타 2025.03.31

React 프로젝트 만들기

요즘은 create-react-app 안쓰고 vite를 쓴다길래..  현재 폴더에 react 프로젝트 만들기react외에 다른 것도 선택 가능npm create vite@latest ./  그 외 유명한 것들 installnpm install @mui/material @emotion/react @emotion/styled  프로젝트 생성엔 vite구현에 사용할 요소는 material에서! https://ko.vite.dev/guide/ ViteVite, 프런트엔드 개발의 새로운 기준ko.vite.devhttps://m3.material.io/components

공부/React 2025.01.12

Go 테스트 코드 깔끔하게 작성하기

go에서 테스트 코드를 작성하는 방법은 여러가지가 있다.개인적인 취향으로는 이런 테스트 코드가 가독성도 높고, 결과를 보기도 쉬웠다. 먼저 main 코드다// main.gopackage mainimport "fmt"func main() { fmt.Println("Hello World!")}// 테스트할 함수의 결과 값 유형을 정의type BodyType int const ( normal BodyType = 1 small BodyType = 2 tall BodyType = 3 none BodyType = 4)// 테스트할 함수의 input 구조체type Person struct { Name string Age int Body *Body}type Body struct { height int weigh..

공부/Go 2024.08.28

IDE로 코드 리뷰할때 개인적인 팁

일단 git 웹 뷰로는 솔직히 코드 리뷰 하기가 힘들다. 딱 바뀐 부분만 나오기 때문이다. 그래서 git clone 하여 개인 IDE로 열어서 해당 브랜치로 checkout 하여 보는데 막상 그렇게하면 어디가 바뀌었는지 알기가 쉽지 않다. vscode에서는 unstage 상태의 변경사항(add가 되지 않은 변경사항)은 표시해준다. 그러면 commit된 것들을 unstage로 되돌리면 된다. 먼저 git log 명령어로 어디까지 되롤릴지 확인한다 > git log commit a9d21cb2bebc66cdb811693ae61f8dd0b45703cf (HEAD -> https) Author: Seungwon Lee Date: Tue Jul 26 16:41:51 2022 +0900 Add TLS option ..

공부/Linux 2024.04.18

Go에서 배열 구조체를 포함한 구조체의 값 변경할 때 주의사항

Go에서 이미 값이 할당된 다중 구조체(nested structure)의 내부 배열 구조체에 어떤 값을 변경할 때는 for 문에서 인덱스를 사용해서 직접 접근해야한다. 가끔 습관적으로 for k, v := range S 를 하며 v를 통해 값을 할당하는 실수를 저지르게 된다. type Outer struct { name string inner []Inner } type Inner struct { A int B int } func changeInner() { outer := Outer{ name: "togomi", inner: []Inner{ { A: 5, B: 6, }, }, } for k, v := range outer.inner { // 잘못된 방법 v.A = 1 v.B = 2 // 옳은 방법 out..

공부/Go 2023.12.14

golang http connection(socket) 재사용하기

회사에서 부하테스트를 하던 도중 겪은 일이다. 부하를 주는 클라이언트가 할당된 리소스도 다 사용하지 못하고, 기대하던 RPS도 나오지 않는 현상이 있었다. netstat 명령어로 확인 결과 상당 수의 소켓의 status가 TIME_WAIT 인 것을 발견했다. TIME_WAIT은 연결은 종료된 상태지만, 바로 소켓을 반납하지 않고 혹시나 송신측에서 데이터를 보낼 수 있는 것을 기다리는 상태이다. 내가 기대했던 바는 소켓을 종료하지도, 반납하지도 않고 다음 통신에 재사용하는 것이다. 사실 해결법은 정말 간단하다. go http 패키지는 기본적으로 소켓 재사용 정책이 적용되어있기 때문에, 아래 사항만 모두 지켜주면 된다. response body를 전부 읽는다. body를 close한다. 중요해서 볼드체로 했..

공부/Go 2023.06.22

Kubernetes 사용을 편리하게 해주는 툴

k9s 원래는 일일히 kubectl 명령어 치는 것을, 한 번의 키입력으로 가능하게끔 해주는 툴 정말 편하다 설치 방법 K9S_VERSION=v0.26.7 curl -sL https://github.com/derailed/k9s/releases/download/${K9S_VERSION}/k9s_Linux_x86_64.tar.gz | sudo tar xfz - -C /usr/local/bin k9s 사용법 k9s kubectx 다루는 k8s 클러스터가 많을 때 컨텍스트 변경을 쉽게 해주는 툴 ~/.kube/config에 여러 클러스터를 기술하고, kubectx로 변경한다. 설치 방법 wget https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubec..

공부/Kubernetes 2023.02.20