request를 받는 controller를 만들어보자 가장 초기의 형태로는 직접 request, response 객체를 받는 방법이다. @RequestMapping("/requset-param-v1") public void requestParamV1(HttpServletRequest request, HttpServletResponse response) throws IOException{ String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); log.info("username={}, age={}", username, age); response.getWriter().wr..
API란? 우선 Controller를 만들기 전에 API라는 개념을 알아야한다. API라고 하면 다들 Rest API를 떠올릴 것이다. 그럼 API중 Rest API는 뭘까? REST API란? API 또는 애플리케이션 프로그래밍 인터페이스는 애플리케이션이나 디바이스가 서로 간에 연결하여 통신할 수 있는 방법을 정의하는 규칙 세트입니다. REST API는 REST(REpresentational State Transfer) 아키텍처 스타일의 디자인 원칙을 준수하는 API입니다. 이러한 이유 때문에 REST API를 종종 RESTful API라고도 합니다. 출처: https://www.ibm.com/kr-ko/cloud/learn/rest-apis 위의 설명을 좀 더 간단하게 설명하자면 서로간 데이터나 정보..
서론 JDBC는 연결하는 과정에 있어서 표준화된 인터페이스이다. JDBC가 없을땐 각각의 DB(ORACLE, MySql 등..)마다 연결하는 과정이 달라 어려움이 있었다고 한다. 요즘에 누가 JDBC를 사용하냐고 하는데 사실 나는 요즘에 누가를 경험하고 있는 중이다. 그 이유로는 Data Engineering을 하는데 있어서 저장하는 DB의 경우에는 Oracle DB로 통합되어있기 때문에 JPA를 사용하고 있다.하지만, 문제점은 각각의 인프라들에서 파싱해가야하는 DB들이 하나가 아니라는 점에 있었다. (몇가지 생각나는 DB들만 해도 MS-SQL, MySQL, Orcale 등등...) 또한, 몇몇 DB들은 쿼리 권한도 없어 프로시져를 통해서 가져가야 했다. 따라서 데이터를 파싱하는 점에 있어서는 JPA를 ..
다 쓴 객체 참조를 해제하라 자바에서는 기존 managed 언어(C/C++)과 다르게 GC를 갖춰 프로그래머가 메모리에 신경을 덜 써도 됐다. 하지만 모든 메모리누수가 사라진 것은 아니다. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } public Object pop() { if (s..
자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 객체 지향적인 설계를 하다보면 유연성이 높을 수록 좋다. 하지만 특정 객체를 하나의 클래스에서 소유해버린다면 그 것은 매우 유연하지 못할 것이다. public class SweetPizza{ private Source source = new TomatoSource(); // blah } 예를 들어 다음과 같이 sweetpizza의 재료로 토마토 소스를 사용해야 한다고, 다음처럼 넣어주면 나중에 래시피가 바껴서 재료가 바뀐다면 sweet pizza의 소스코드 수정이 불가피 할 것이다. 지금은 간단한 예이지만 복잡해지면 여기저기 소스코드 수정할 곳을 찾는 것도 머리가 아프다. 따라서 이것을 의존 객체 주입을 통해서 해결해 줄 수 있다. public cla..
생성자에 매개변수가 많다면 빌더를 고려하라 생성자가 많고, 그중 null값으 많이 들어가는 것이 있다면 빌더 패턴을 사용하는 것이 좋다. 책에서는 먼저 점층적 생성자 패턴을 제시한다. public class NutritionFacts { private final int servingSize; //(ml, 1회 제공량) private final int servings; //(회, 총 n회 제공량) private final int calories; //(1회 제공량당) private final int fat; //(g/1회 제공량) private final int sodium; //(mg/1회 제공량) private final int carbohydrate; public NutritionFacts (int ..
- Total
- Today
- Yesterday
- apache
- KAFKA
- JPA
- Java
- centos
- caching
- Data Engineering
- broker
- 프론트엔드
- consumer
- frontend
- spring
- K8S
- cs
- apache kafka
- API
- OS
- NextJS
- Producer
- Front
- zookeeper
- 리액트
- Container
- feign client
- spring boot
- backend
- Firebase
- rhel
- React
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |