-
Go : 열거형 상수Language/고 Go 2023. 12. 17. 00:01
출처 : https://inf.run/tfefs 상수를 이용할 때 java에서의 enum 처럼 열거된 상수들에 0부터 시작하는 번호를 붙여주는 iota 라는 것이 있다. iota의 사용 예시는 다음과 같다. iota를 사용하지 않고 상수만 선언해서 사용할 경우 package main import "fmt" function main() { const ( Jan = 1 Feb = 2 Mar = 3 Apr = 4 May = 5 Jun = 6 ) fmt.Println(Jan) fmt.Println(Feb) fmt.Println(Mar) fmt.Println(Apr) fmt.Println(May) fmt.Println(Jun) } 출력 값 위의 예제에 iota를 적용 package main import "fmt"..
-
Go : 자료형 및 변수, 상수Language/고 Go 2023. 12. 17. 00:01
참고 https://inf.run/tfefs https://untitledtblog.tistory.com/26 자료형 정수 : 0 부호 있는 정수형 int, int8, int16, int32, int64 int는 32bit 시스템에서는 int32, 64bit 시스템에서는 int64 부호 없는 정수형 uint, uint8, uint16, uint32, uint64 uint는 32bit 시스템에서는 uint32, 64bit 시스템에서는 uint64 uint와 같은 크기를 갖는 포인터형 uintptr 실수 : 0.0 float32 32비트 부동 소수점 7자리 정밀도 float64 64비트 부동 소수점 12자리 정밀도 복소수 complex64, complex128 문자열 : "" string 바이트 byte u..
-
Go : 여러개의 멀티 프로젝트 실행Language/고 Go 2023. 12. 17. 00:01
참고 : https://dev.to/chandrapenugonda/vscode-multiple-go-projects-in-a-directorygo-118-3l7i vscode에서 go 1.18 버전 이상부터 적용되는 방법이다. goland를 통해서 실행하면 왠만한 실행 에러는 피해가는것 같다. 하지만 난 가난한 취준생이기 때문에 무료인 vscode로 진행하였다. 프로젝트 구조가 다음과 같을 때 실행 에러/경고가 발생하지 않는다. go ├─ section1 │ ├─ go.mod │ └─ test.go ├─ section2 │ ├─ go.mod │ └─ var1.go └─ go.work go 프로젝트 안에 section1 프로젝트와 section2 프로젝트가 있다고 볼 수 있다. 각각의 프로젝트를 경고 및 ..
-
Go : Windows11에서 Go 환경 셋팅Language/고 Go 2023. 12. 17. 00:01
1. Go 설치 Go 설치 사이트로 이동 -> https://go.dev/doc/install Download 버튼 클릭 내 환경은 windows11이기 때문에 제일 왼쪽의 것을 다운받았다. 설치 진행! 설치시 환경변수가 자동으로 생성되는 옵션을 선택해준다. 설치 확인 확인을 눌러 설정 창을 모두 종료한 후 windows terminal 실행 window키 + r -> cmd 입력 -> go version 입력으로 확인! 2. vscode 실행 vscode를 사용할 것이기 때문에 vscode를 실행한다. go 에디터로 검색하면 atom이 많이 나오지만 atom 서비스가 종료되었다고 한다 ㄷㄷ 대안으로 vscode가 많이 검색되어서 vscode를 사용할 것이다.! 대학생이라면 goland라는 훌륭한 선택지..
-
Spring Boot : @JsonFilter와 HATEOAS 함께 사용해보기Spring Boot 🍃 2023. 12. 17. 00:01
시나리오 사용자 목록 및 정보 조회 api 요청에 대한 응답 시 User 도메인 객체의 필드 중에 이름, 가입일, 시퀀스만 노출해야 하고, HATEOAS를 적용해 보기로 했다. url 변경이 발생해도 클라이언트 사이드 작업에는 영향이 미치지 않기 때문이다. api 응답시 필드 몇가지는 비노출 하기로 했지만, swagger를 통한 도메인 객체 정보 조회시 모든 필드 정보를 출력해야 한다. 특이사항 정리 api 응답 시 User 도메인 객체에서 몇 가지 필드(이름, 가입일, 시퀀스)만 출력할 것 swagger 문서 조회시 User 도메인 객체의 모든 필드 정보 확인 가능 HATEOAS 적용 User 도메인 객체 정의 @Schema(description = "사용자 상세 정보를 위한 도메인 객체") @Data..
-
Spring Boot : SpringDoc 문서에 설명 달기Spring Boot 🍃 2023. 12. 17. 00:01
참고 https://colabear754.tistory.com/99 https://springdoc.org/#migrating-from-springfox Spring Boot 2.7.17에서 실행 확인 SpringDoc 의존성 추가 implementation "org.springdoc:springdoc-openapi-ui:1.7.0" SwaggerConfig 설정파일 작성 @Configuration public class SwaggerConfig { @Bean public OpenAPI openAPI() { return new OpenAPI() .components(new Components()) .info(new Info() .title("REST API 테스트 제목") .description("이것은..
-
에러 기록 : iptables 잘못 건드렸다가 docker 실행 실패하는 건에 대하여에러기록 2023. 12. 17. 00:01
주절 😭 정말 오랜만에 아찔했다 괜히 해외 IP 차단에 눈이 떠져서............ 오랜만에 띄워놨던 프로젝트를 실행해보다가 갑자기 마리아DB 연결 실패가 떠서 이것저것 확인해보는데 DB 자체는 문제가 없었다. 스프링 부트에서 아래 에러가 계속 발생했다. 이 경우 배포를 다시 하면 왠만하면 해결된다 하기에 재배포 하느라 docker를 정말 오랜만에 건드렸는데 이번엔 iptables failed 문구가 뜨면서 도커 컨테이너 실행이 안되었다 😬 관련해서 구글링을 다시 시도 했고 아래 블로그를 참고해서 해결했다. https://zunoxi.tistory.com/121 sudo iptables -t filter -F # iptables의 filter 테이블의 모든 규칙 삭제 sudo iptables -t ..
-
Spring Boot : Validation 예외 Advice로 관리하기Spring Boot 🍃 2023. 12. 17. 00:01
1. 예외 응답 객체 생성 - Valid 예외 출력 객체 ValidExceptionResponse.java @Getter @Builder public class ValidExceptionResponse { private String field; private String message; } - 예외 응답 객체 ExceptionResponse.java @Getter @Builder public class ExceptionResponse { private LocalDateTime timestamp; private String message; private t details; } 2. Advice 클래스 작성 MyExceptionHandler.java @RestControllerAdvice public cla..
-
ubuntu22 : 해외 ip 차단 설정OS/Ubuntu 2023. 12. 17. 00:01
ssl 인증서 자동 갱신을 설정하다가 시스템 로그를 보게 되었는데 정말 많은 해외 아이피가 다녀간 기록이 있었다. ㄷㄷ 검색해보니 해외 ip 차단 등록을 해두는게 여러모로 안전하다고 해서 나는 해외 지인도 없고 나갈 일도 없기 때문에 😞 부랴부랴 진행해보는 해외 ip 차단 ! 참고 https://blog.tomclansys.com/7 https://lifestream.kr/89 ip 검색 : https://nordvpn.com/ko/ip-lookup/ 1. 해외 ip 정보 다운로드 https://mailfud.org/geoip-legacy/ 사이트에서 GeoIP-legacy.csv.gz 파일을 다운받는다. 1-1. 다운 받을 폴더로 이동 cd /home/download 1-2. 파일 다운로드 wget h..
-
apache2 + ubuntu22 : let's encrypt 자동 갱신 설정OS/Ubuntu 2023. 12. 17. 00:01
우연히 어떤 블로그를 통해 crontab을 통한 수동 스케줄러 등록이 필요없었음을 알게 되었다.. https://velog.io/@dev-taewon-kim/ubuntu-server-setup-5 우분투17 이후 우분투 mirror 서버를 통해 certbot을 설치했다면 자동으로 인증서 자동 갱신 스케줄러가 동작한다고 한다. 확인하는 방법은 내 서버에서 아래의 명령어를 입력해보면 된다. sudo systemctl status certbot.timer 역시나 당연하게도 내 서버에도 적용이 되어 있었다. 🤣 일단 crontab에 설정해둔 스케줄러를 제거하고 내일이나 모레에 인증서 확인해봐야지 밑에서 설정해준 스케줄 작업은 주석처리 😬 + 위에 캡쳐본에서 나와있는 갱신시간이 지난 10월 18일 11시 28분에..