본문 바로가기

전체 글106

JSON object, array parsing response body가 거의 json으로 와서 필요한 정보들만 가져오고 싶어 찾아봤더니 JSONObject 와 JSONAarray라는 것이 있었다. 내가 사용한 예 JSONObject jsonObject = new JSONObject(responseEntity.getBody()); JSONArray items = jsonObject.getJSONArray("items"); JSONObject item = items.getJSONObject(0); user.setChannelId(item.getString("id")); user.setTitle(item.getJSONObject("snippet").getString("title")); JSONObject로 전체를 받아온 후, items이름가진 배열을 J.. 2022. 2. 15.
SpringBoot 의존성 주입 DI, 필드주입@Autowired ->생성자주입@RequriedArgsConstructor 의존성 주입을 하는 여러 방식 Spring에서 의존성을 주입(DI : Dependency Injection)하는 방법은 생성자 주입(lombok의 @RequiredArgsConstructor이용), 필드주입(필드 주입(@Autowired를 단 필드), 수정자주입(setter메소드에 @Autowired) 3가지 방식이 있다. 우선 의존성 주입이란 무엇인지 알아보자. new연산자를 이용하여 객체를 생성하는 것이 아니고, 외부에서 객체를 주입받아 생성하는 것이다. 객체 내부에 다른 객체를 생성하면 수정 시 새로 생성된 클래스도 함께 수정해야 하므로 강한 결합도를 가지고, 코드의 재활용성이 떨어지는 문제가 생긴다. ( 결합도는 낮추고 응집도는 높여야 한다. ) 그러나 스프링은 @Autowired을 붙이는 필드 .. 2022. 2. 15.
java optional stream() Optional은 java8부터 생겨났다. 탄생배경은 null값을 반환할때의 위험성을 없애기 위함이다. 메서드가 반환할 결과값이 ‘없음’을 명백하게 표현할 필요가 있고, null을 반환하면 에러를 유발할 가능성이 높은 상황에서 메서드의 반환 타입으로 Optional을 사용하자는 것이 Optional을 만든 주된 목적이다. Optional 타입의 변수의 값은 절대 null이어서는 안 되며, 항상 Optional 인스턴스를 가리켜야 한다. 옵셔널 사용법을 공부해볼만한 링크들 java8, 9, 10까지의 Optional https://jdm.kr/blog/234 옵셔널 올바르게 쓰기: https://homoefficio.github.io/2019/10/03/Java-Optional-%EB%B0%94%EB%A5.. 2022. 2. 3.
SpringBoot yaml, naver API와 연결하기 spring에서 yaml은 처음 써봤기 때문에 참고용으로 올려두려고 한다. // application.yaml naver: url: search: local: https://openapi.naver.com/v1/search/local.json Image: https://openapi.naver.com/v1/search/image client: id: 홈페이지에서 발급 secret: 홈페이지에서 발급 server: port: 포트번호 spring: mvc: view: prefix: /WEB-INF/views/ suffix: .jsp pathmatch: matching-strategy: ANT_PATH_MATCHER // swagger 버전오류해결 부분 그리고 위의 naver 부분을 java파일에서 가져다 .. 2022. 2. 3.
spring boot 에서 swagger 사용하기 +)버전오류 swagger는 spring에 API를 자동으로 문서화시켜준다. implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0' 를 dependency에 추가해주면 된다. (그래들일 경우 -> build.gradle 파일에 ) +) 참고-https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter 매번 Talend API Tester를 통해 작성하지 않아도 된다는 게 너무 좋다. 또한 다양한 어노테이션으로 swagger ui에 설명, 이름을 추가/변경하거나 body에 들어갈 기본값을 설정해줄 수도 있다. 그러나 새로운 swagger와 spring이 .. 2022. 2. 3.
spring(?)-뷰 맵핑시 한글 깨짐 현상, javascript 연결, 약간의 vue문법문제 스프링 부트 프로젝트시 필요한 뷰 연결 시 발생한 문제기도 하고,, 마땅히 적을 곳이 여기밖에 없다ㅎ 한글 깨짐 현상은 왜 일어났는지 모르겠다... 모든 인코딩을 utf-8로 설정해놨었는데 의문이다. 해결방법은 jsp파일에 이걸 추가해주면 된다. html에서 자바스크립트 파일 위치를 지정해줘야 하는데, js나 css를 resources/static 아래에 지정해둬야 하기에 조금 헷갈렸다. 다음과 같이 지정해주면 된다. resources/static/js/main.js -> 전에 vue를 이용해서 프로젝트를 하고 싶어서 vue공부를 조금 했었다. 전달받은 객체의 하이퍼링크가 맵핑이 잘 안 되었었다. 상기시키기 위한 정리를 하려고.. wish_list로 여러 wishlist를 서버에 요청하여 받아온 상황이다.. 2022. 1. 28.