괴발개발 성장기
반응형

분류 전체보기 220

[npm] 패키지 버전 조회 명령어

# 배경 같은 코드인데 내 local에서는 실행이 안되고 다른 개발자 local에서는 실행이 되었다. 그래서 antd 버전을 체크하기로 했다. package.json를 보면 다 똑같은 걸 사용하는데 어떻게 버전이 틀릴 수 있냐고 생각할 수 있다. 그런데 package.json에는 아래와 같이 써있다. "antd": "^4.20.0", 내꺼는 4.20.12 이고 다른 개발자는 4.20.10 이었다. # ^ 의미 ^ 기호는 일반적으로 패키지의 버전 범위를 정의할 때 사용한다. 그래서 4.20.0이상 5.0.0 미만까지 사용이 가능하다. # 패키지 버전 조회 npm ls [패키지명] 해당 패키지 버전을 조회할 수 있다. # 예시 npm ls antd 버전을 알 수 있다.

Study/React 2023.09.22

[Git] github에서 내가 원하는 브랜치 불러오기

# 배경 보통 이슈번호 - dev - staging - master 순으로 머지를 해서 간다. 그런데 배포 주기보다 오래 걸릴 개발은 아예 다른 브랜치를 만들어서 합니다. Dev에서 donor라는 브랜치를 만들어서 진행합니다. 이슈번호 - donor로 진행을 하다가 다 끝나면 dev로 머지를 합니다. 그런데 donor에서 git pull 를 dev로 할 때가 있습니다. (익숙해서) 그럴 때 다시 github에 있는 donor를 가져오고 싶을 때가 있습니다. # 코드 git checkout -b [new_branch_name] origin/[branch_name] # 예제 github와 연결 된 remote 이름이 a github에 있는 donor 브랜치를 가지고 온다. git checkout -b don..

Study/GIT 2023.09.14

[React] Form안에 내용을 리셋하기

# 배경 모달창 안에 From이 있다. 모달창을 닫으면 메모에 글씨가 리셋이 되지 않는 현상이었다. 리셋이 잘 안돼서 Form이 어렵다고 생각했다. 옆에 동료 덕분에 하는 방법을 알게 되었다. # 예시 - antd에 있는 Form 사용함 - 버튼을 누르면 모달창이 뜬다. - 메모를 적고 X 를 누르고 다시 버튼을 누르면 모달창안에 그래도 있다. const FormStudy = () => { const [form] = Form.useForm(); const [open, setOpen] = useState(false); //여기에 코드를 추가할 예정 return ( {setOpen(true)}}>모달창 setOpen(false)} width={600} > 저장 ) } 이 코드는 리셋이 안되는 코드이다. 여기..

Study/React 2023.09.13

[Golang] 만 나이 구하는 코드

# 배경 법적 대리인이 19세 미만이면 안돼서 만 나이를 구해서 체크 했다. # 코드 func GetAge(birthDate string) int64 { birthMonth, _ := time.Parse("01", birthDate[4:6]) birthDay, _ := time.Parse("02", birthDate[7:]) birthYear, _ := strconv.Atoi(birthDate[:4]) now := time.Now() age := now.Year() - birthYear // 생일이 지나지 않았을 경우 나이에서 1을 빼줌 if now.Month() < birthMonth.Month() || (now.Month() == birthMonth.Month() && now.Day() < birth..

Study/Go 언어 2023.09.12

[Golang] 14세 미만 체크하는 코드

# 배경 기부금영수증을 신청할 때 14세 미만인 경우는 법적 대리인이 동의가 필요하다. 그래서 나이를 체크하는 코드를 만들었다. # 코드 func CheckUnderTheAgeOfFourteen(birthDate string, seventhDigit int64) bool { birthMonth := birthDate[2:4] // 생월(MM) birthDay := birthDate[4:6] //생일 birthYear, _ := strconv.Atoi(birthDate[:2]) if seventhDigit == 1 || seventhDigit == 2 || seventhDigit == 5 || seventhDigit == 6 { birthYear = 1900 + birthYear } if seventhDi..

Study/Go 언어 2023.09.11

[React] 배열에서 중복 제거된 특정 값들을 조회한다.

# 배경 회사에서 리스트를 뽑아서 데이터를 조합해야했다. 우리 객체로 된 리스트를 뽑아서 거기에서 이름과 주민등록번호 두개로 중복제거를 한다. # 리스트 예시 => 11개 더보기 const dataList = [ { "donationId": 280090, "donationDate": "20230726", "memberId": 1, "memberName": "전원우", "donorName": "전원우", "quantity": 1, "amount": 1318, "birthDate": "960717", }, { "donationId": 280009, "donationDate": "20230306", "memberId": 1, "memberName": "전원우", "donorName": "박재범", "quant..

Study/React 2023.09.08

[React] PortOne(포트원) 이용해서 결제 연동하기

# 배경 회사에서 개발자끼리 스터디를 하기로 했다. 경매 서비스를 만들기로 했다. 거기서 결제하는 부분을 맡게 되었다. # 참조 https://portone.gitbook.io/docs/ready 결제 연동 준비하기 - PortOne Docs 포트원 회원가입 이후 관리자 페이지 내 결제연동 -> 테스트 연동 관리 탭에서 연동하고자 하는 PG사를 선택합니다. portone.gitbook.io 가입하고 PG사를 선택하면 된다. 나는 카카오페이와 NHN KCP, KG이니시스 연결했다. 하나만 연결하면 나머지는 수월한 편이다. 네이버 페이도 하려고 했는데 네이버쪽이랑 같이 해야했다. KG이니시스 안에 네이버 페이 기능이 있었다. 이유는 모르지만.... KG이니시스 여기에서 실제로 결제가 됐다 ㅠㅠㅠㅠㅠㅠㅠ 테스..

Study/React 2023.09.07

[Mac OS] Apache JMete 설치 방법 및 이용 방법

# 배경 서비스에 메모리 누수가 발생해서 찾아야했다. 서비스에 부하를 줘서 테스트를 해보기로 했다. # 사용 목적 부하 테스트 # 설치 방법 - 터미널에서 설치한다. brew install jmeter # 여는 방법 open /opt/homebrew/bin/Jmeter 터미널에 명령어를 적으면 아래와 같은 화면이 나온다. # 사용방법 1) Test Plan 오른쪽 클릭 -> add -> threads -> thread Group 클릭 2) 사용자 수와 반복 횟수를 정한다. 예시로 아래 그림에서는 2명의 사람이 3번씩 반복한다. 그래서 총 6번이 호출된다. 3) http 요청 설정하기 Thread Group 오른쪽 클릭 - Add - Sampler - HTTP Request 클릭한다. 4) method를 ..

[Error] 스웨거에서 cannot find type definition: json.RawMessage 에러 메시지

# 배경 스웨거(Swagger)에 돌리려고 하는데 아래의 에러 메시지가 발생했다. # 에러 메시지 cannot find type definition: json.RawMessage # 현상 type Banner struct { Id int64 `json:"id"` Type string `json:"type"` ImageUrl json.RawMessage `json:"imageUrl" ` Created json.RawMessage `json:"created" ` } struct에 json.RawMessage 타입은 지원하지 않는다. 그럴 때에는 무시하고 지나갈 수 있도록 할 수 있다. (필드를 제외할 수 있다) swaggerignore:"true" 태그에 추가해주면 된다. type Banner struct ..

Study/Error 2023.09.05

[Golang] 스웨거(Swagger) 사용하기

# 배경 2년 전에 자바는 API문서를 자동화로 만들어 주는게 있는데 go는 있냐는 말에 열심히 찾았다. 그 때 정보가 지금처럼 많지 않았다. 그래도 만드는 법을 알게 되었다. 하지만 회사 서비스에 적용시키기엔 우선순위가 낮았다. 2년이 지난 지금 스웨거를 적용시키게 되었다. 기본적인 것을 잘되지만 하다보면 예외들도 많았다. 내가 찾아본 것들을 기록해보자! # 하는 방법 1) 우선 echo-swagger 설치하자 go get -u github.com/swaggo/echo-swagger 2) import에 2개의 주소를 추가하자 echoSwagger "github.com/swaggo/echo-swagger" _ "study-service/docs" _ "study-service/docs" 이걸 넣지 않으면..

Study/Go 언어 2023.09.04
반응형