본문 바로가기

분류 전체보기270

스프링부트 Rest API Post 방식 호출하기 - (1) 올해 결제내역이 있는 회원들의 현재 보유한 잔액, 쿠폰 잔여량을 조회해 달라는 요청이 들어왔다. 조회에필요한 테이블을 찾다보니 무려 6개..! 쿼리는 바로 포기ㅎ 문득 각 회원별로 로그인 할 때 보유 잔액을 api 호출을 사용해 구현이 되어있다는 것이 생각났다. api 가이드를보니 로그인 user_id를 파라미터로 던지면 끝이었다 이렇게 간단할 수가?!?! 첫 시도 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); RestTemplate restTemplate = new RestTemplate(); String url = "api url"; MultiValueMap map= new Link.. 2019. 10. 23.
웹 프론트엔드 성능 비용 Reflow & Repaint 나는 백엔드에 더 관심이 많고 앞으로도 그럴테지만, 웹 개발자이고 웹에 대한 이해가 필요하다고 생각된다. 일을 하다가 궁금한 부분이 생겨서 질문을 했는데, Reflow & Repaint 라는걸 알게되어 궁금해서 바로 이 글을 쓰게 되었다. 브라우저 렌더링 프로세스 Rendering Engine Basic Flow 브라우저가 네트워크 계층에서 요청된 데이터를 받아오면, 렌더링 엔진이 움직이기 시작한다. 렌더링 엔진이 HTML 코드를 파싱해 DOM Tree 생성, CSS 코드를 파싱해 스타일 규칙 생성 위 두 가지를 합쳐 렌더 트리 생성 렌더 트리로 배치 시작 실제 화면 그리기 1~3 번은 Reflow, 4번은 Refaint에 해당하는 단계이다. 특정 엘리먼트의 Color 값 변화 Repaint 발생 특정 .. 2019. 10. 3.
브라우저의 동작 방식 브라우저의 주요 기능 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것 자원은 보통 HTML 이지만, PDF나 이미지 처럼 다른 형태일 수 있다. 자원의 주소는 URI (Uniform Resource Identifier)에 의해 정해진다. 브라우저는 HTML과 CSS 명세에 따라 HTML 파일을 해석해서 표시하는데, 웹 표준화 기구인 W3C(World Wide Web Consortium)에서 정한다. 브라우저의 일반적인 인터페이스 URI를 입력할 수 있는 주소 표시줄 이전, 다음 버튼 북마크 새로 고침 버튼, 로드 중단 버튼 홈 버튼 브라우저의 기본 구조 사용자 인터페이스 - 주소 표시줄, 이전/다음 버튼, 북마크 메뉴 등등 실제 화면에 보여주는 창 부분을 제외한 모든 부분 브라우저 엔진 -.. 2019. 10. 3.
마이크로 서비스 구축 - (1) 마이크로 서비스 구축 - (1) 스프링 부트 어플리케이션 부팅: BootStrap 클래스 작성 스프링 부트 어플리케이션을 시작하고 초기화하는데 사용하는 Spring Bootstrap 클래스 마이크로서비스에서 호출할 수 있는 Http 엔드포인트를 노출하는 Spring Controller 클래스 //스프링 부트 프레임워크에 이 클래스가 프로젝트의 부트스트랩 클래스라고 지시한다. @SpringBootApplication public class Application{ public static void main(String[] args){ //스프링 부트 서비스를 시작하기 위해 호출한다. SpringApplication.run(Application.class, args); } } @SpringBootApplica.. 2019. 9. 28.
Mybatis #과 $ 매핑기호의 차이점 이슈가 발생해서 수정 요청이 들어왔다. 쿼리 insert 하는 부분에서 컬럼에 바인딩 되는 값 안에 작은 따옴표(') 가 들어가 있는 경우 SQLException이 발생했다. 그래서 이 부분을 작은 따옴표가 있더라도 insert 하도록 수정하는 것이다. 소스코드는 내가 작성하지 않았지만, 나도 생각 없이 작성 했었을 것 같다. 알고보니 #, $에 따른 매핑기호로 인한 바인딩 방식 차이로 생긴 문제여서 SQLException에 대한 예외처리와 매핑기호를 $에서 #로 수정 해주어 해결됐다. 그럼 #과 $는 어떤점이 다를까? # #은 PreparedStatement를 의미한다. 예를들어 USER_ID = SeokHun 이고, 아래 쿼리가 실행된다면 SELECT USER_ID FROM USERS WHERE US.. 2019. 9. 4.
마이크로서비스 @PathVariable, @RestController, @EnableEurekaClient, @ HystrixCommand, @EnableCircuitBreaker 요즘들어 스프링 부트에 관심이 많아졌다. 워낙 업무에 레거시한 소스들을 많이 보다보니 더욱 더 최신 소스를 갈망하는 것 같다... 스프링 부트로 프로젝트를 해보거나, 뭔가 제대로 만들어본 적이 없어서 이참에 공부를 하여 클론 코딩을 해보려 한다. 그러기 위해서 부트를 제대로 공부해보자. 지인이 추천해준 스프링 마이크로서비스 코딩 공작소라는 책을 구매해 공부 할 예정이다. 스프링 부트를 공부하면서 REST작성 방법도 같이 공부 할 예정이다. 또한 책 이름에 맞게 나는 마이크로서비스를 위한 구현 방식을 공부하고, 그에 대한 코드 작성법을 공부 할 것이다. 스프링 부트를 사용한 전형적인 HELLO WORLD 예제 @SpringBootApplication //스프링 부트 서비스의 진입점을 지정 @RestCont.. 2019. 8. 31.