![[Java, 자바] @JsonProperty, @JsonNaming이란?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdE5hJc%2FbtsH5fIomO0%2FEBEVVjeSc9rK1q6rsDWCz1%2Fimg.png)
API 통신을 하다 보면 대부분 JSON 형태로 데이터를 주고 받습니다. 이때, 서로 파라미터 작성 방식(카멜케이스, 스네이크케이스) 또는 파라미터명이 다를 경우 데이터를 파싱하는 도중에 에러 또는 원활하게 파싱이 되지 않는 경우가 있습니다 ! 카멜 케이스, 스네이크 케이스란?카멜케이스(Camel Case)첫 글자는 소문자로, 중간 글자들은 대문자로 시작하는 표기법입니다.ex) memberId, memberName, memberPhoneNumber 스네이크 케이스(Snake Case)첫 글자는 소문자로, 중간 글자들은 언더바(_)가 포함되는 표기법ex) member_id, member_name, member_phone, member_phone_number일반 코드 예시간단하게 Json 형태로 Reques..
![[StringBoot] Azure 번역기 API 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2UmxU%2FbtsH6wITUcy%2FYtJqN2gS4jZCpVYI9bRfK1%2Fimg.png)
번역기 API를 사용하기 위해 Papago open API를 사용하려고 했으나.... 서비스 지원이 종료됬다고 하네요.....우우우우우~그래서 ! Azure를 통한 번역기 API를 사용해보았습니다 !Azure 가입 및 구독API를 사용하려면 Azure에 가입한 후 구독을 진행해줘야합니다 ! 12개월은 무료로 사용할 수 있다고합니다 ! 클라우드 컴퓨팅 서비스 | Microsoft AzureMicrosoft Azure의 유연한 개방형 클라우드 컴퓨팅 플랫폼을 통해 목적에 따라 투자하고 비용을 절감하며 조직을 더 효율적으로 만드세요.azure.microsoft.com위 링크를 통해서 회원가입을 진행한 뒤 메인 페이지 배너에 있는 Azure 무료 체험하기를 클릭하면 해당 서비스를 이용하실 수 있습니다 ! 번역..
![[Spring, SpringBoot] Controller에서 데이터 받는 방법 (@RequestBody, @RequestParam, @ParthVariable)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2LNwJ%2FbtsH5L7Ret7%2FSydK84pk17L3U4BDRYGeu1%2Fimg.png)
어느날 문득 정리하고 데이터 받는 방법에 대해 정리하고 싶어졌다 !서버에서는 요청한 데이터를 전달 받는 방법은 다양하다 ! MVC 패턴에서 주로 사용하는 어노테이션을 위주로 정리해 보려합니다 ! @RequestBody@RequestBody는 클라이언트가 보내는 HTTP 요청 본문(JSON, XML 등)을 HttpMessageConverter를 통해 타입에 맞는 자바 객체로 변환해줍니다 !@PostMapping("/test")@ResponseBody // return datapublic String test(@ReqeustBody data) { ...} @RequestParam@RequestParam은 클라이언트가 요청할 때 쿼리스트링을 통해 넘어오는 매개변수를 추출할 수 있습니다 !required가 t..
![[Spring, Spring Boot] @Transactional의 중첩에 대하여](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpJD62%2FbtsH5IJ4SQs%2F64uwAgL6EPGPKoYclkFGN1%2Fimg.png)
트랜잭션의 개념은 여기를 클릭하여 확인해보세요 ! @Transactional이 중첩이 되었을 때업무 중 @Transactional이 중첩이 되었을 때(아래와 같은 상황) 어떻게 진행될지 궁금해졌다 !@Transactionalpublic Info buy(String item){ payment newPayment = new payment(item); return payment(newPayment)}@Transactionalpublic Info payment(Info info){ buyRepository.save(info); return info;}buy 메서드에서 payment 메서드를 호출하고 있는데, 두 메서드 모두 @Transactional 어노테이션이 적용되어 있는 상태입니다. 트랙잭션의..
![[Spring, Spring Boot] @Configuration이란 ?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtlPwG%2FbtsH5ZEPic8%2FPASMIe29ZFs8fFEh6f2K11%2Fimg.png)
@Configuration이란 ?Spring, Spring Boot에서 Bean을 수동으로 등록하기 위해서는, class 상단에 @Configuration 어노테이션을 적용해주고, @Bean을 사용해 수동으로 빈을 등록할 수 있습니다 !빈을 생성할 때 메서드의 이름으로 빈의 이름이 결정됩니다. 그러므로 중복된 빈의 이름이 존재하지 않도록 주의해줘야합니다 !@Configurationpublic class DatabaseConfig { @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); ..
![[Spring, String Boot] StringUtils 사용 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv5B0H%2FbtsH5d4RMaD%2FDWr7MeQOPWDV9S0eMsgZcK%2Fimg.png)
StringUtils란 ?StringUtils는 손쉽게 문자열을 다룰 수 있는 다양한 메서드를 제공하고 있습니다 !StringUtils를 통해 유용한 메서드에 대해 몇 가지 정리해 보려합니다 :) 아래와 같이 Spring Framwork에서 기본적으로 제공해줍니다.import org.springframework.util.StringUtils; 또는 apache의 모든 기능을 사용하려면 아래와 같이 defendency를 주입해줘야합니다 ! ( gradle 기준 코드)implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0' 유용한 메서드isEmpty()문자열의 null 여부와, 길이가 0이 아닌지 체크해줍니다.//..
![[Spring, Spring Boot] @RequiredArgsConstructor란 ?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbahUy2%2FbtsH5uL6lX3%2FIKrLhgkj1KpKu8NVsnuDOk%2Fimg.png)
@RequiredArgsConstructor란 ?Lombok으로 스프링에서 DI(의존성 주입)의 방법 중에 생성자 주입을 임의의 코드없이 자동으로 설정해주는 어노테이션입니다.@RequiredArgsConstructor는 초기화 되지 않은 final 필드나, @NonNull이 붙은 필드에 대해 생성자를 생성해줍니다 !새로운 필드를 추가할 때 다시 생성자를 만들어서 관리해야하는 번거로움을 없애줍니다.(@Autowired를 사용하지 않고 의존성 주입할 수 있습니다.) [@RequiredArgsConstructor 예시]@Controller@RequiredArgsConstructor@RequestMapping("/user")public class RequiredArgsConstructorControllerExa..
![[Spring, Spring Boot] @Controller와 @RestController](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqWCvP%2FbtsH50qc1C7%2FAAmarDanJkLkgjkuu9ygpk%2Fimg.png)
@Controller와 @RestController란?Spring과 Spring Boot에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있습니다.Spring MVC의 컨트롤러인 @Controller와 Restful 웹서비스의 컨트롤러인 @RestController의 차이점은 HTTP Response Body가 생성되는 방식입니다. @Controller란?전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. 아래와 같은 과정을 통해 Spring MVC container는 Client의 요청으로 부터 View를 반환합니다. Client는 URI 형식으로 웹 서비스에 요청을 보낸다.DispatcherSer..