Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Microservice와 Spring Cloud의 소개_1
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 소프트웨어 아키텍처 Software Architecture 발전 과정 1960 ~ 1980년대 - 메인 프레임 하드웨어 중심. 하드웨어의 사양이나 성격에 맞춰서 서비스 구축 하드웨어가 고가였기 때문에 서비스의 기능을 수정하기 어려웠음 Fragile : 깨지기 쉬운 시스템 1990 ~ 2000년대 - 분산 Robust, Distributed. 시스템이 안정화 됨 분산 덕분에 서비스의 변화가 발생하더라도 안전성있고 성능이 높은 서비스를 유지 가능 2010 ~ 현재 Resilient(탄력적), Cloud Native 시스템은 로컬 → 클라우드로 이전 확장성과 안전성이 더욱 강화. 지속적인 개선 및 변경 사항이 생겨도 시스템을 탄력적으로 운영..
RESTful Web Service 개발 - Java Persistence API 사용_3
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 게시물 관리를 위한 Post Entity 추가와 초기 데이터 생성 사용자가 작성할 수 있는 게시물 관련 Entity를 만들어보자. 사용자는 여러 개의 게시글을 작성할 수 있으며, 아예 작성을 하지 않을 수도 있다. 반대로 게시글은 사용자가 없으면 생성되지 못한다. 즉 User가 필수 데이터, Post가 옵셔널 데이터라고 생각하면 된다. Post.java 생성 ... public class Post { @Id @GeneratedValue private Integer id; private String description; @ManyToOne(fetch = FetchType.LAZY) @JsonIgnore private Users us..
[백준] 11660_구간 합 구하기5 - JAVA
·
알고리즘/알고리즘 유형
2차원 배열 구간 합 일단 1차원 배열의 구간 합부터 이해해야한다. [백준] 11659_구간 합 구하기4 - JAVA 구간 합 구간 합은 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 알고리즘이다. 구간 합을 이용하려면 합 배열을 구해야 한다. 합 배열 만들기 S[i] = S[i-1] + A[i] 인덱스 0 1 2 3 A 10 10 10 1 devhan.tistory.com 2차원 배열의 구간 합은 어려운 거 같으면서도 이해하면 쉽다. 일단 문제의 예시로 설명해보자. 위 원본 배열을 A라 하자. 원본 배열의 크기가 +1 된 이유는 구간 합 배열의 크기와 똑같이 만들어주기 위함이다. 이 A의 합 배열(S)을 채워보자. for문의 시작 인덱스는 0이 아닌 1이다. index 계산 시 0부터 시작이면..
[백준] 11659_구간 합 구하기4 - JAVA
·
알고리즘/알고리즘 유형
구간 합 구간 합은 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 알고리즘이다. 구간 합을 이용하려면 합 배열을 구해야 한다. 합 배열 만들기 S[i] = S[i-1] + A[i] 인덱스 0 1 2 3 A 10 10 10 10 S 10 20 30 40 이런 식으로 합 배열을 만든다. S 배열에 값을 계산해서 저장하는 for문의 변수 초기화는 1부터 시작해야한다. 구간 합 공식 S[j] - S[i-1] 1부터 3까지의 구간 합을 구한다치면 S[3] - S[1-1]이 된다. 40-10 = 30이 된다. A배열의 값이 모두 10이라 뭔가 헷갈릴 수 있으니 다른 배열로도 계산해보자. 인덱스 0 1 2 3 A 10 16 3 49 S 10 26 29 78 위 배열에서도 1부터 3까지의 합을 구해보자. 78..
RESTful Web Service 개발 - Java Persistence API 사용_2
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 Spring Data JPA를 이용한 Entity 설정과 초기 데이터 생성 application.yml jpa 로그를 볼 수 있도록 설정을 해주자. 난 설정되어있었다. spring: jpa: show-sql: true User.java @Entity public class User { @Id @GeneratedValue private Integer id; ... } @Entity : 이 어노테이션을 붙여주면 해당 클래스의 이름으로 클래스 필드에 있는 정보들을 기반으로 데이터베이스 테이블을 생성한다. @Id : 레코드를 구분하기 위한 기본키 설정. 여기선 id가 기본키가 된다. @GeneratedValue : 자동 생성되는 키 값이란..
RESTful Web Service 개발 - Java Persistence API 사용_1
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 Java Persistence API 개요 JPA Java Persistence API의 약자 자바 ORM 기술에 대한 API 표준 명세 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 인터페이스이기 때문에 클래스 내부에는 메서드 선언 밖에 없고 기능을 사용하려면 구현체를 만들어야한다. EntityManager를 통해 CRUD 처리 Spring Data JPA Spring Module JPA를 추상화한 Responsitory 인터페이스 제공 JPA 사용을 위한 Dependecy 추가와 설정 JPA 라이브러리 추가 build.gradle 스프링 프로젝트를 생성했을 때 dependecies에서 JPA와 h2를 추가했다면 buil..
RESTful Web Service 개발 - Spring Boot API 사용
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 Level3 단계의 REST API 구현을 위한 HATEOAS 적용 HATEOAS란? Hypermedia As the Engine Of Application State의 약자 현재 리소스와 연관된(호출 가능한) 자원 상태 정보를 제공 Level 0 REST API라고는 볼 수 없고 단순히 웹이나 특정한 네트워크를 통해서 컴퓨터 자원을 의미없이 전달해주는 단계 HTTP를 사용하지만 웹의 매커니즘을 사용하진 않음 모든 요청을 단일 엔드 포인트에 보낸다. Level 1 요청이 개별 리소스와 통신 약속 리소스(ex: uri)를 확보하고 해당 리소스에 응답함 Level 2 리소스와 HTTP 요청 메서드를 사용함 일반적인 프로젝트에서 구현하는..
RESTful Web Service 개발 - RESTful Service 기능 확장
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 유효성 체크를 위한 Validation API 사용 Validation API에는 두 가지 API가 존재한다. JDK에 포함된 Validation API Hibernate Validation API Hibernate는 자바에서 어플리케이션을 개발할 때 사용하는 API 자바의 객체와 데이터베이스의 엔티티를 매핑해주는 프레임워크 제공 이번 포스팅에서는 JDK에 포함된 Validation API만 사용해보자. Hibernate Validation API는 추후에 사용.. JDK에 포함된 Validation API 스프링부트 2.3 버전 이상 시에는 gradle에 validation을 따로 추가해줘야한다. build.gradle imple..
나 영알못. 스픽 프리미엄 플러스를 결제했다. 스픽 후기(특가 아닌 특가 같은 특가 아닌 너)
·
잡담/구매후기
스픽 얘기를 하기 전에 일단 나의 영어 수준을 먼저 말해보자면...... 요즘 유치원생들이 나보다 더 잘한다...^^ 뭐랄까. 내 학창 시절 때(라떼)는 하교 후 놀이터 가면 아이들이 많은 정도..? 딱 사교육 붐이 일어나기 전 아니면 초였어서 공부를 안 했다.....^^ 물론 핑계지만. 아무튼 영어엔 별 관심이 없었는데 직업이 아무래도 영단어를 많이 보고, 또 영어를 배우면 분명히 나에게 이득이 됐음 됐지 실은 안된다.라는 확고한 생각이 들어 최근 들어 너무 힘들게는 말고 슬슬 시간을 짬 내서 하고 있는 중이다. 여태 영어 관련해서.. 사교육이라고 하긴 뭐 하지만 학교 수업 외 공부해 본 건 말해보카가 처음이다.. 아무튼 내 영어 실력은 처참하다^^ 말해보카 후기 말해보카 내돈내산 프리미엄 멤버십 22..
RESTful Web Service 개발 - User Service API 구현_2
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 HTTP Status Code 제어 GET Method와 POST Method OK 응답 코드 구분하기 UserController.java 수정 @PostMapping("/users") public ResponseEntity createUser(@RequestBody User user) { User savedUser = service.save(user); URI location = ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}") .buildAndExpand(savedUser.getId()) // {id}에 값 지정 .toUri(); // uri 형태로 변환 retur..
RESTful Web Service 개발 - User Service API 구현_1
·
공부/Spring
Spring Boot를 이용한 RESTful Web Services 개발 User Service API 구현 User 도메인 클래스 생성 User.java 생성 (com.example.restfulwebservice) @Data @AllArgsConstructor public class User { private Integer id; private String name; //private Date joinDate; Date 클래스 미사용 private LocalDateTime joinDate; } 강의에선 joinDate의 타입을 Date로 지정하였지만 나는 LocalDateTime으로 지정했다. UserDaoService.java 생성 Dao는 DB와 관련된 코드, Service는 비즈니스 로직을 작성..
말해보카 내돈내산 프리미엄 멤버십 223일째 후기
·
잡담/구매후기
결제는 내가 안해서 구매 인증은 없다....... 여튼 홍보 아님 진짜 아님. 이런 블로그에 누가 홍보한다고... 그래도 일단 프리미엄 멤버십(2인) 인증! 프리미엄 멤버십 2023년 3월 12일까지.... 두 명의 친구를 더 모아서 넷이서 3월 새학기 시작 기념 달려보자고 했는데 과연 진짜로 할 진 모르겠음.. 귀여운 작심삼일들아.. 2인 멤버십의 경우 한명당 74,500원을 지불하면 1년을 사용할 수 있다. 후기 글이니까 자세한 기능이나 사용법 등은 공식 홈페이지에서 확인하길! 말해보카 :: 영어는 단어부터 영어 공부 성공의 핵심은 어휘력. 완벽한 복습 시스템으로 내 기억력의 한계를 뛰어넘는 신기한 경험을 해보세요. sayvoca.com 말해보카 이용 인증! 사실 맨 처음에는 그냥 좀 신기할 뿐 재미..
나 초보 개발자. 비싼 마우스를 구매해봤다. (로지텍 mx anywhere3)
·
잡담/구매후기
냅다 구매인증 하고싶은데;; G마켓 스마일 클럽 이용 때문에 다른 분한테 부탁해서 사가지고 구매내역이 없다. 대신 송금 내역이라도; 갑자기 마우스를 샀다. 같이 일하는 분 중에서 마우스를 사고싶다고 이것저것 같이 찾아줬는데 아니 내가 사고싶어졌다. 이게 시발비용인가. 원래 쓰던 마우스는 로지텍 G585 모델이다. 블투로 사용하고 있는데 가끔가다가 마우스 커서가 멈추는 현상이 간헐적으로 나타나 안그래도 불편했다(핑계). 아니 나도 무한 스크롤 느껴보고 싶다고...... 사실 눈여겨보던 마우스는 하나가 아니었다. MX Master 3s, MX Vertical, MX anywhere3 이 셋 중에 고민했다. 일단 가격은 3s, vertical의 경우 10만원을 훌쩍 넘었고, anywhere3는 그나마 양심있게..
나 초보 개발자. 새로운 노트북 거치대를 구매해봤다. (360도 회전 노트북 거치대)
·
잡담/구매후기
신에게는 노트북 거치대가 3개 있다. 교보문고에서 책 사면서 사은품으로 받은 플라스틱 휴대용 노트북 거치대(두 번째 거랑 비슷하게 생겼는데 재질만 플라스틱), 파견 숙소에서 사용할 첫 번째 노트북 거치대, 파견지에서 사용하는 휴대용 노트북 거치대. 어쩌다보니 노트북 거치대 부자가 된 나는 새로운 노트북 거치대를 구매해 보자 마음먹었다. 왜냐면 일단 저 두 번째 휴대용 거치대는 정말 휴대하기만 좋지 사용하기 영 불편했다. 여러 선이 연결된 노트북을 올리려다가 홈 부분에서 지지대가 빠지기도 하고 공간 활용이 너무 안돼 불편했기 때문이다(핑계). 업무 시간에 이것저것 찾아봤는데 갑자기 옆에 계신 분이 본인의 노트북 거치대를 자랑했다. 무려 360도 돌아가는 모습을.... 장비충이라 또 화려하게 돌아가는 노트북..
RESTful Web Service 개발 - Spring Boot로 개발하는 RESTful Service
·
공부/Spring
Spring Boot로 개발하는 RESTful Service Spring Boot 개요 Spring Boot 스프링 기반의 단독 실행 가능한 어플리케이션을 개발하기 위한 플랫폼 상용화 가능한 수준의 어플리케이션을 만들 수 있음 spring 보다 spring boot를 사용하면 최소한의 설정만으로 플랫폼과 서드 파티 라이브러리 등을 사용할 수 있음 spring boot에 Tomcat, Jett나 Undertow 웹 어플리케이션 서버가 내장되어 있어 별도로 설치하지 않아도 된다. 실행에 필요한 많은 API들이 spring boot에 'starter'라는 컴포넌트를 통해 쉽게 사용할 수 있음. 실행에 필요한 다양한 설정을 auto configuration으로 자동으로 설정할 수 있다. 상용화와 관련된 통계, ..