괴발개발 성장기
반응형

전체 글 219

[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

[Error] 스웨거(Swagger)로 문서를 만들다가 나타난 에러 해결책

간단하게 스웨거 사용하려고 초기 작업을 하는 과정에서 에러가 발생했다. 설치를 다하고 코드도 다 썼는데 해당 주소에 접속을 하면 에러 발생한다. # 에러 메시지 Fetch error Internal Server Error doc.json # 해결방안 사용하지는 않지만 docs 디렉토리 경로를 적어주지 않으면 에러가 발생한다. 나는 study-service 디렉토리 안에 바로 docs 디렉터리가 있다. 사용하지 않지만 import 안에 있어야하니까 앞에 _ 표시를 해주면 된다. (go 언어 사용) import ( _ "[프로젝트명]/docs" ) 예시 import ( _ "study-service/docs" ) 그럼 에러를 해결할 수 있다.

Study/Error 2023.08.31

[디자인패턴] 프록시 패턴(Proxy Pattern)

프록시 패턴(Proxy Pattern) 어떤 객체의 대리자 역할을 하는 객체를 통해 해당 객체의 기능을 간접적으로 사용하는 디자인 패턴 원래 사용하려는 객체를 직접 사용하지 않고 대리인을 통해서 쓰는 패턴 클라이언트로 첫 요청을 받으면 프록시 받는 것이다. 예를 들으면 사장을 만나기 위해서는 비서를 거쳐서 가는 것과 비슷한 개념이다. # 장점 - 기존 코드는 수정하지 않고 새로운 기능을 추가한다 => 개방폐쇄의 원칙 - 기존 코드의 기능만 유지할 수 있다. - 보안을 강화시킬 수 있다. - 초기화 지연을 시킬 수 있다. => 최초로 사용할 때 만든다. - 캐싱하여 성능을 향상 - 특정 권한이나 조건에 맞는 경우 객체에 접근할 수 있다. # 단점 - 코드의 복잡성이 증가한다. # 예시 가상 프록시를 사용하..

반응형