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을 보낸다.
1. 스프링 부트의 Web starter가 들어 있으면 controller에서 객체를 반환해도 json으로 변환되어 client에 보내진다. 2. 복잡해 보이는데 이걸 왜 쓰냐는 게 질문이다. 3. ResponseEntity는 HTTP 프로토콜의 response 정보를 편하게 설정하기 위해서 사용한다. 3-1 단순히 body에 들어갈 정보를 json으로 변환해서 보내는 것은 너무 기본적이다. 3-1-1 이것은 Controller에 @RestController가 지정되면 자동으로 json 파서가 세팅된다. - @ResponseBody 3-2 실 개발에서 외부시스템과 연동시 가장 문제가 되는 부분 중 하나가 인코딩인데 3-2-1 Content-Type을 설정하여 Encoding을 지정해야 하고, Accept..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/XY8rr/btq4bikd8wj/9uhVpEIAAMkIRQfKvnkKmK/img.png)
1. 프로젝트마다 사용하는 JDK 버전이 다른 경우가 많다. VS Code에도 각 프로젝트마다 자바버전을 다르게 할 수 있다. 1-1 이 점이 왜 필요한지 대해 예를 들어 보면 전자정부 프레임워크는 몇 년전까지 Java 7을 요구하였다. 1-2 그런데 VS code에서 자바 언어 지원을 위한 Java Language Server는 최소 Java 8을 요구한다. 1-3 이런 경우 두 개 이상의 JDK를 지정할 수 없다면 프로젝트를 개발할 수가 없다. 1-3-1 Java 7로는 자바 언어 서버가 동작하지 않아서 VS Code로 자바 개발이 불가능하다. 1-3-2 Java 8로 지정할 경우 Java 7이 지원하는 아주 오래된 라이브러리가 동작하지 않아 문제가 생길 수 있다. 2. 이것을 해결하기 위해서는 두 ..
1. REST 서비스를 구현하기 위해서 1-1 Spring MVC -> 고전적인 방식 Front Controller 모델이다. 1-2 Spring WebFlux -> Reactive 방식으로 동작하는 REST를 구현하는 기술이다. 1-3 Spring WebFlux fn -> Reactive 방식으로 동작하는데 functonal programming model을 사용한다. 1-3-1 Node.js의 express 서버를 자바로 구현한 거라 생각하면 된다. 2. REST 서비스를 사용하기 위한 클라이언트로 2-1 Spring RestTemplate -> 고전적인 방식 2-2 Spring WebClient -> 스프링의 reactive 클라이언트를 구현하는 기술이다. 솔직히 좋은지는 모르겠다. 위의 내용만 이..
- 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
- Many-To-Many
- 자바
- 매핑
- form
- one-to-many
- one-to-one
- mapping
- Validation
- 하이버네이트
- Angular
- XML
- login
- 설정
- 로그인
- hibernate
- WebMvc
- 설정하기
- Spring Security
- Rest
- 스프링부트
- spring boot
- Security
- crud
- Spring
- 외부파일
- jsp
- MYSQL
- 상속
- RestTemplate
- 스프링