1. 내가 젤 하기 싫어하고 잘 하지도 못하는 부분이 SQL이다. 사실 하기 싫은 것 보다는 웬만하면 어플리케이션 쪽에서 로직을 처리하도록 프로그램을 작성하는 편이다. 내가 경험해 온 국내의 대부분의 대용량 시스템은 데이터베이스에 너무 종속되어 거의 모든 컴퓨팅 자원이 데이터베이스에 몰려 있다. 일반적으로 DB 98%, AP 2% 정도 되는 것 같다. 2. 우리나라 개발자들은 알고리즘을 상당히 두려워한다. 그래서 복잡한 데이터베이스 쿼리로 처리하려고 하는 것 같은데 나에게는 너무 놀라운 현상이다. 복잡한 쿼리를 잘 작성하고 이해할 정도면 프로그램은 사실 식은 죽먹기 수준이기 때문이다. 3. 아무튼 현업에서는 대용량 데이터베이스를 주로 다루기 때문에 오라클이 항상 주력인데 한번씩 헷갈리는 부분이라 메모한다..
1. 자바 스크립트로 만든 간단한 BST 트리이다. 2. 필요한 대부분의 기능은 작성되어 있지만 빠진 기능이 있을 수도 있다. 3. 구현하는데 생각보다 시간이 많이 걸린다. 재귀적 사고가 많이 요구된다. const readlineSync = require('readline-sync'); // tail -----> head class Queue { constructor() { this.head = null; this.tail = null; this.size = 0; } // put data from tail enqueue(data) { const node = new Node(data); if (this.isEmpty()) { this.head = node; this.tail = node; } else { ..
1. 별의미는 없지만 잊어버릴 것 같아 적어 놓는다. 2. vector arguments(argv+1, argv+argc) 형식으로 vector의 range constructor를 사용된다. 2-1 begin, end를 넣어주는 것이 포인트이다. 2-2 vector 역시 array기반의 가변 array라서 array와 완벽하게 호환이 된다. #include #include #include #include using namespace std; int count_lines(string filename) { ifstream in(filename); return count(istreambuf_iterator(in), istreambuf_iterator(), '\n'); } vector count_lines_in..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kXJPQ/btq8Deipukg/yFIuV32tKUGWPwDnb4RtK1/img.jpg)
1. 평소처럼 개발 정보를 뒤적거리다가 시간이 너무 늦어 자러가려는데 업데이트가 걸렸있었다. 평소처럼 또 업데이트 구나하고 보통 3~5분 정도 기다리면 종료될 것 같다는 생각에 헤드폰을 귀에 썼다. 2. 그런데 평소와는 달리 업데이트가 10분을 넘어간다. 이상한 생각이 들어 화면 한번씩 봤는데 한 3~4회 화면이 꺼졌다가 켜졌다. 느낌이 윈도우 판올림 같은 느낌이었는데 15분 정도 지나 업데이트 완료되고 보니 첫화면의 폰트가 완전히 달랐졌다는 것을 느꼈다. 3. 화면을 켜니 충격적으로 아름다운 UI가 펼쳐졌다. what the f*** 4. 내 컴퓨터는 윈도우 11버전 설치 조건을 만족하지 못한다. 윈도우에서 11버전을 위한 진단에서 설치 불가능이라고 떴다. 그래서 그냥 10이나 잘 써야지라는 생각하고 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bFiROX/btq8mUxMHxp/0xMERxcnkrLJqt0GjDvUm0/img.png)
0. 스프링을 쓸일이 별로 없는데, 아주 예전 스프링 4.4를 스프링부트로 마이그레이션할 일이 생겼다. 기존의 client 스크립트가 JSP라서 대략 난감이다. 아무튼 인터넷에 찾아보니 제대로 돌아가는 게 없어 이것저것 끌어모아 틀로 사용할 만한 것들 구성하였다. 짜집기 코드라서 내가 만든 것은 아니다. 1. 스프링 부트 initializer에서 Spring Web, Oracle Driver, Lombok 만 선택했다. 패키지는 war로 설정했다. 2. 그런 후 jstl과 tomcat-embed-jasper를 넣었다. 나머지는 initializer에서 알아서 설정해 주었다. 2-1 bootstrap 5.0.1을 webjar로 추가하였다. 4.0.0 org.springframework.boot spring..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b57kRo/btq8dthjlls/OVkKyJZQ2uCTjCRin2TOoK/img.png)
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 즉 윈도우 폴더를..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bcAaHy/btq7NzWnv8k/Koz8FubS9YfFQipZ66h7s1/img.png)
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으로 초기화없..
- 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
- Security
- one-to-one
- crud
- Spring
- XML
- 로그인
- MYSQL
- WebMvc
- mapping
- jsp
- form
- login
- 상속
- Validation
- 외부파일
- RestTemplate
- 스프링
- Rest
- Angular
- Spring Security
- 설정하기
- one-to-many
- hibernate
- 자바
- spring boot
- Many-To-Many
- 설정
- 매핑
- 스프링부트
- 하이버네이트