개발
-
intelliJ Junit 실행시 한글깨짐오류개발/java 2022. 2. 21. 19:51
Help -> Edit Custom VM Options Dfile.encoding=UTF
-
SpringBoot API Test (DB)개발/java 2022. 2. 21. 19:33
SpringBoot 에서 API 단위테스트를 작성하려고한다. 아주간단하게 아래와같이 테스트 대상클래스에 `@SpringBootTest` 어노테이션만 붙여주면된다. @SpringBootTest class FooTest { @Test @DisplayName("var를 반환한다.") void test1() throws Exception { } } API 테스트 + 실제 API 를 통한 데이터베이스 등록및 삭제 까지 진행하려면 `@AutoConfigureTestDatabase` 어노테이션을 추가해서 아래와같이 진행하면된다. @SpringBootTest @AutoConfigureMockMvc @AutoConfigureTestDatabase class FooTest { @Autowired private MockMv..
-
Docker-for-desktop 대체하기 (Vagrant 를 활용한 docker)개발/etc 2022. 2. 10. 00:05
구성도 필수설치 Oracle VitualBox 설치 하이퍼바이저 끄기 window > cmd (관리자 권한) bcdedit /set hypervisorlaunchtype off 하이퍼 바이저를 실행시키면 Intel VT-x 또는 AMD-V 를 사용할수 없다 바이오스진입 후 가상화 켜기 Vagrant 설치 Vagrant 플러그인 설치 vagrant plugin install vagrant-docker-compose VagrantFile 만들기 Vagrant.configure("2") do |config| config.vm.box = "ubuntu/bionic64" config.vm.network "forwarded_port", guest: 443, host: 443 config.vm.network "for..
-
filebeat offset 초기화개발/server 2021. 7. 1. 16:14
1. 파일비트 중단 2. 백업 cp .${filebeat_home}/data/registry .${filebeat_home}/data/registry_bk 3. vim .${filebeat_home}/data/registry [{"source":"xxxx.log","offset":244271451,"timestamp":"2021-06-29T10:04:31.930763517+09:00","ttl":-1,"type":"log","FileStateOS":{"inode":228691060,"device":64769}}, ......] #여기서 원하는 소스를 찾아서 offset 을 0으로 변경 4. 파일비트 시작
-
[ Golang ] Rest Api 스펙이 틀릴때 (타입이 틀릴때) Json decode(Unmarshal) 하기개발/golang 2021. 4. 2. 21:08
외부 혹은 내부 Rest API 를 사용할때 문서에 적혀있는 스펙과 다른 타입을 반환할때가 종종있다. 이럴때 그냥 그대로 json decode (unmarshal) 를 하게될경우 err 가 발생하는것을 확인할수 있다. 따라서 아래와 같이 예방할수있다. package example_wrong_type_api_spec import ( "encoding/json" "strconv" "strings" "time" ) type ProductResponseSpec struct { Name string `json:"name"` Price int `json:"price"` CreatedAt time.Time `json:"created_at"` } type ProductResponseSpecProtect struct {..
-
[ Golang ] JSON Object 키 넣은 순서대로 정렬하기개발/golang 2021. 4. 2. 20:29
Golang 에서는 일반적인 JsonMarshal 을 통한 encoding 은 키순서 오름차순으로 encoding 이 되게끔 되어있다. 사실 Object 에는 키순서는 따로 중요하지 않지만 Object 키가 저장된 그대로 나와야하는 상황이 있으면 다음과 같은 로직이 필요하다. package order_json_object import ( "bytes" "encoding/json" ) type OrderJsonMap struct { Order []string Map map[string]string } func (om OrderJsonMap) MarshalJSON() ([]byte, error) { var b []byte buf := bytes.NewBuffer(b) buf.WriteRune('{') l :..
-
[ Golang ] Go 루틴 최대갯수를 제한하기개발/golang 2021. 4. 2. 00:11
DB 배치 작업을 하거나 외부 API 를 사용할때 커넥션 갯수가 너무 많아지는것이 부담스러울때 고루틴을 다음과 같이 제한 가능하다. package example_limit_gorutine import ( "fmt" "log" "sync" "time" ) func SelectTable(offset int) { time.Sleep(300 * time.Millisecond) log.Println(fmt.Sprintf("select * from table limit %d,10", offset)) } func Run(concurrentCount int, totalCount int) { concurrentGoroutines := make(chan struct{}, concurrentCount) var wg sync..