본문 바로가기

Spring

(50)
[JAVA] Vue3 + Spring boot : Oauth2.0 Google 로그인 기능 만들기 Vue3, Java + Spring bootOauth 2.0, Google play console 을 이용한 구글 로그인 기능을 만들었다. 각자 등록해둔 설정 값에 따라 url 사용방식은 바뀌겠지만 우선은 글대로 따라하면 될 것 같다. - Oauth 2.0, Google Play Console 설정은 끝낸 상태라고 가정하에 진행 Vue3 - Front커스텀 버튼 추가 Google 계정으로 로그인 // 모드 구분하지 않고 단일일 경우 ..
[JAVA] find image file size - File 이미지 크기(가로X세로) 구하기 파일의 크기가 아닌 이미지 파일의 가로X세로 크기를 구하고 싶었다. BufferedImage 를 사용하여 이미지의 크기를 구해보자. @Transactional public String createImage(Image imgVo, MultipartFile file) { . . . if(file != null) { String restoNm = createAttachFile(imgId, file); Path filePath = fileCon.uploadFile(file,restoNm); try { File imageFile = new File(filePath.toString()); BufferedImage image = ImageIO.read(imageFile); // 이미지 파일 읽어오기 if (image..
[JAVA] 이미지 URL 변환 후 화면에 보여주기(가져오기) (feat.미리보기) 나는 클라이언트에서 특정 url 로 이미지를 요청하면 이미지를 보내주는 방식을 만들고 싶었다. Vue Axios 와 REST API, InputStream, URL.createObjectURL() 을(를) 이용하였다. 1. JAVA Spring Server 1) Controller @GetMapping(path = "image/{imgId}/show") public void getImageFileById(@PathVariable(name = "imgId") String imgId, HttpServletResponse response) throws IOException { service.getImageFileById(imgId, response); } 요청 받을 url path 설정해주고, url에 따라서..
[Spring] boot 에서 JWT 인증 토큰 생성 및 사용하기 1. JWT 인증 Json Web Token 인증에 필요한 정보들을 토큰에 담아 암호화시켜 사용하는 방식이다. 서명된 토큰이라는 점에서 쿠키보다 더 보안성이 높다. JWT의 구조 Header, Payload, Signature의 구성 요소로 이루어지며 각 구성 요소가 마침표(.)로 구분된다. Header - 토큰의 타입이나, 서명 생성에 사용되는 알고리즘을 저장한다. Payload - 토큰에 담을 정보를 key-value 형태로 저장한다. Signature - 서명이 저장되는데 암호화되어 있기 때문에 서버에 있는 개인 키로만 복호화가 가능하다. 2. JWT 생성 1) dependencies 추가 io.jsonwebtoken jjwt 0.9.1 org.springframework.security sprin..
[Spring] Multi module - 모듈 별 application.yml 파일 환경 설정 및 관리하는 방법 common 모듈 application.yml api 모듈 application-api.yml 다른 프로젝트를 import 해서 사용할 때 프로젝트 별로 yml 파일이 존재한다. 설정 파일의 이름이 동일 할 경우 상위 파일을 먼저 읽어서 하위 파일은 인식을 못 한다. common 과 api 의 application.yml 을 둘 다 사용해야 하는 경우를 알아보자. 모듈 별로 yml 분리하기 @SpringBootApplication public class apiApplication { public static void main(String[] args) { System.setProperty("spring.config.name", "application,application-api"); SpringAppli..
[JAVA] Spring boot @Value 사용법과 java.lang.IllegalArgumentException: Could not resolve placeholder '' in value "${}" 에러 원인 / 해결 방법 @Value 로 application.yml 의 값을 가져오는데 해당 에러가 발생했다. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationProperty': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder '' in value "${}" BeanCreationException 말 그대로 스프링빈 객체 생성중에 특정 예외가 발생하여 빈 생성이 되지 못할 때 발생하는 예외이다. 특정 필드에 의존주입이 ..
[API] Spring boot + Swagger 3 (SpringDOC, OpenAPI) 적용 및 사용법 https://swagger.io/ API Documentation & Design Tools for Teams | Swagger Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better products, faster. swagger.io https://devel-log.tistory.com/43 [API] Spring boot Swagger 기본 사용법 https://swagger.io/ API Documentation & Design Tools for Teams | Swagger swagger.io Swagger UI 란 ? 별도의 코드 추가 없이 OpenAPI 규격에 맞게 자동으로 API를 시각화 시..
[API] Swagger : Parser error missed comma between flow collection entries 원인 / 해결 방법 Errors Hide Parser error missed comma between flow collection entries Swagger 버전도 맞고, 모든 Api 경로가 일치 하는데 해당 에러가 계속 발생했다. comma 가 누락 됐다고 하는데 사용한 곳이 없다. 구글링 해보니 comma 뿐이 아니라 따옴표, 대괄호 등 어딘가에서 잘못 사용한 경우 해당 에러가 발생하는 것 같다. 내용은 comma 이지만 comma가 아닐 수도 있다는 것이다. @Column(name = "sample") @ApiModelProperty(notes = "예제", example = "[sample]'/test/api/sample/sampleId") @ApiParam(value="예제") private String samp..
[JAVA] Can not deserialize instance of '' out of START_OBJECT token Error - JSON 데이터 Map 변환 시 에러 이것도 타입 미스 에러이다. Can not deserialize instance of '' out of START_OBJECT token ObjectMapper mapper = new ObjectMapper(); Sample s = mapper.convertValue(data, Sample.class); 보통 ObjectMapper 사용 시 발생하는 에러인데, mapper.convertValue mapper.readValue 메서드 상관없이 발생한다. 타입이 달라서 발생했기 때문에. JSON 데이터 전달 하는 쪽 (프론트) 과, Entity(VO) 쪽 변수/객체 타입이 전부 일치하는지 확인하면 된다. 대부분은 List 형식인데 그냥 받아서 발생했더라. 배열 [] 인지 List 인지도 확인 하시길. 나는 ..
[JAVA] HashMap Key,Value 가져오기 1. Key, Value 모두 가져올 경우 키와 값 모두 가져와야하는 경우 entrySet() 메서드 또는 forEach() 문을 사용한다. Map.Entry 인터페이스의 entrySet() 메서드를 사용한다. Map.Entry 인터페이스는 Map 객체의 키와 값을 접근할 수 있도록 해주는 getKey(), getValue() 함수가 존재한다. Map map = new HashMap(); map.put("test", 1); map.put("sample", 2); for (Map.Entry data : map.entrySet()) { System.out.println(String.format("Key (name) is: %s, Value (age) is : %s", data.getKey(), data.ge..