1. 결론은 답이 없다. 윈도우 폴더에서 개발하는 것 밖에 없다. 2. WSL 성능이 좋아지면서 WSL 환경으로 전환하고 있다. 그런데 다 좋은데 문제가 생겼다. 2-1 nodemon으로 go 개발을 하는데 소스 변경 시 재기동이 되지 않는다. 2-2 아래는 왼쪽은 D:/practice/go/hotel 오른쪽은 /home/pilseong/practice/go/hotel 에 소스가 있다. 2-3 윈도우 폴더에서 리눅스 파티션으로 옮겨서 작업을 하려고 하는데 WSL2로 들어와 작업을 하면 문제가 생겼다. 2-4 그냥 쉽게 생각하면 안되는 이유가 nodemon -L 같은 걸 쓰면 되지 않을까 생각 할 수 있는데, -L 옵션은 아래의 경우 같이 윈도우 폴더에 있을 때만 의미가 있다. 2-4-1 즉 윈도우 폴더를..
1. 윈도우에서 Docker Desktop은 내부적으로 wsl2를 사용하고 있다. 그렇기 때문에 Docker의 데이터를 이동하려면 wsl의 설치공간을 이동해야 한다. 1-1 설치된 wsl 리스트를 보려면 wsl -l 명령어를 사용하면 된다. 1-2 나의 경우는 기본 wsl을 우분투로 설치해 놓았고, Docker에서도 역시 두개의 wsl distro를 사용하고 있다. 1-3 도커의 기본공간을 변경하려면 아래 docker-destop-data, docker-desktop을 이동해야 한다. 1-3-1 나의 경우 외장 SSD인 D 드라이브로 옮겼다. 외장하드의 공간이 훨씬 넓고 포멧시에도 안전하기 때문이다. 2. 사실 나는 윈도우 powershell 스크립트 같은 것에 관심이 전혀 없다. 동작만 하면 된다. 잘..
1. Go 언어 대한 다양한 참고자료가 있지만 Effective Go라는 go 언어 홈페이지에 걸린 문서가 아주 유용하다. 중요한 부분의 핵심만 정리하려고 한다. 2. 문서의 Data 파트에 New와 Make 부분이 있다. 둘 다 자원 할당을 위한 함수들이다. 여기서는 New만 정리한다. 3. New - 메모리를 할당해 주고 해당 메모리 내용을 모두 0으로 설정한다. 그런 후 할당한 메모리의 포인터를 반환한다. 3-1 0으로 설정한다는 것의 의미는 new로 할당받은 메모리 블록에 C언어처럼 쓰레기 값이 들어있지 않기 때문에 별도의 쓰레기 값을 제거하기 위한 초기화 작업이 필요없다는 뜻이다. 3-2 다시 말하면 bytes.Buffer 같이 내부적으로 데이터를 읽는 byte slice의 경우 0으로 초기화없..
1. Go는 아주 단순한 문법을 가진 아주 간단한 언어이다. 정적 타입, 간단한 문법, 직관적인 구조 때문에 소스를 이해하기가 굉장히 쉽다. 소스를 보고 분석하는 데 필요한 시간이 다른 언어에 비해 굉장히 짧다. 다르게 해석할 여지가 없기 때문이다. 기본 라이브러리 소스도 바로 볼 수 있고 그냥 죽보면 직관적으로 쉽게 따라갈 수 있다. 스프링이나 자바 라이브러리와는 다르게 굉장히 쉽다. 2. 문제는 C언어를 생각하고 쉽게 생각하면서 포인터를 사용하려고 하면 안되는 것이 많다. 예를 들면 slice 포인터를 받아서는 개체에 []문법으로 접근할 수가 없다. 아래에 문법을 보면 pointer receiver를 사용할 경우 d[i] 같이 접근하는 게 불가능하다. 항상 (*d)[i] 처럼 접근해야 한다. 3. 이..
1. 아무리 생각해도 객체지향은 프로그램의 복잡성을 증가시키는 것 같다. 2. 복잡성 보다 더 큰 문제는 객체지향설계를 그대로 구현할 수가 없다는 점이다. 설계현실과 코딩현실의 불일치이다. 2-1 객체 지향설계를 해놓아도 사실 웹에 적용할 경우에는 그대로 사용할 수가 없다. MVC나 DDD가 훨씬 실용적이다. 2-2 웹만 그런 것이 아니라 데스크톱 프로그램도 마찬가지이다. 2-3 결국 의미가 있으려면 UI가 없는 네트워크 프로그램 같은 것에나 적용가능하다. 이게 사실 의미가 없다. 2-4 글로벌 기업의 객체지향 면접(System Design)은 그다지 큰 의미가 없어 보인다. 일반적으로 설계한대로 만들게 되면 보통 단일 스레드의 콘솔프로그램이 되고 만다. 그냥 데이터 기반 설계가 훨씬 낫다. 3. 재활용..
1. 시대가 OOP를 지나 단순하고 유연한 Data Oriented(DO)로 가는 시점이다. OO는 경직된 구조와 RDMS에 적합한 구조를 가지고 있다. 사실 예전에는 OO와 RDBMS가 맞지 않다는 생각에 OODB라는 개념까지 도입되었으나 현실적으로 잘맞는 쌍이다. 하지만 OO는 더 이상 NoSQL에 대응하기에는 너무나 경직되고 불편하다. Stream, Lambda, Reflextion, Custom Annotation 같은 새로운 개념이 자바에 도입되었지만 사실 Data Oriented 에는 잘 맞지 않다. 이런 개념이 로직을 작성을 편하게 하고 프레임워크를 개발하는데 더 큰 용도가 있긴 하지만 데이터의 구조와 데이터의 저장에도 많은 부분 영향을 미친다. 객체지향은 RDMS라는 공식은 변함이 없을 것..
1. 기본적인 get, post, put을 위한 MockMvc 테스트 템플릿이다. 2. 이걸 붙여 놓는 이유는 VSCode는 자동으로 static 메소드를 임포트 하는 기능이 좋지 않아 클래스 이름을 기억하기 힘들기 때문이다. 3. 기본적인 내용 3-1 JUnit 5 버전은 @ExtendWith를 사용해야 하고 MockitoExtention을 사용해야 BDDMockito문법을 사용할 수 있다. 3-2 사용을 원하는 fixture는 @MockBean을 붙여서 지정한다. 3-3 MockMvc는 @Autowired로 가져온다. package pe.pilseong.some.web.controller; import static org.hamcrest.CoreMatchers.is; import static org...
이전에 썼던 글들을 읽어보니 나도 이해못하겠다. 그래서 다시 미래의 백지가 된 나를 위해서 다시 써 놓는다. 1. @RequestBody는 JSON -> 객체 매핑, @ResponseBody는 객체 -> JSON 변환 1-1 @RequestBody는 JSON 형식으로 데이터를 수신할 경우 반드시 변환할 클래스 앞에 명시해야 한다. 2. @RestController는 @Controller + @RespnoseBody이다. 그냥 객체를 리턴하면 Json을 보낸다.
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib