분류 전체보기 478

@RequestBody - ajax Json 요청을 객체 응답으로 자동 변환

컨트롤러에서 데이터를 전달해 인자에 할당하는 대표적인 방법으로는 @RequestBody 와 @RequestParam이 있다. @RequestParam @RequestParam 어노테이션은 단일 파라미터를 전달 받을때 사용하는 어노테이션 입니다. 넘어온 값의 키로 값을 불러오는 어노테이션 입니다. @GetMapping("/save") public Word createWord(@RequestParam String content){ Word new_word = new Word(content); return wordrepository.save(new_word); } RequestParam을 사용하면 단일 변수값을 받아오기 때문에 받아오는 데이터가 많아지기도 하고 return을 해줄 때도 다시 Json 객체로 변..

Spring/Spring Boot 2021.11.24

[TIL] 11.24 -스파르타 내일배움캠프 73일차

TIL 1. Spring URL 파리미터 핸들링 2. Spring Controller html page 랜더링 3. JPA Auditing 4. URL 파라미터 값 추출 (JS) 5. JPA 연관관계 매핑 - onetomany, manytoone 오늘 하루 1. 좋았던 점 아 이제 TIL 쬐금씩이라도 매일매일 써야지 후,,, 오늘도 많은 공부를 했구만! 저 위에ㅔ 4,5,번은 아직 기록을 못했다 ,,,ㅎㅎ 오늘 하고 자든가 내일 마저 하든가... 오늘 좋았던 점은,,, 음 아침에 피곤해서 주저하지않고 핫식스를 사와서 마셨다는 점! 역시 카페인이 들어가야 버틸만 하다 오예 그리고 또, Spring 안되는거 낑낑대다가 송연님이한테 물어봐서 10분만에 이해한거 (2번) 역시 혼자서 안될때는 주저하지 말고 집단..

[@RequestParam Vs @PathVariable] - Spring URL 파라미터 값 받아오기

스프링 컨트롤러에서는 URL 파라미터값을 받아오는 2가지 방법이 있다. 이건 URL 파라미터를 어떤 방식으로 넘겨주는냐에 따라 혼합적으로 사용해주면 될 것 같다. URL에 파리미터값을 전달하는 2가지 경우 Case 1 ) http://xxx.x.x?index=1&page=2 Case 2 ) http://xxxx.x.x/index/1 첫번째 URL의 경우 파라미터 값과 이름을 같이 전달하는 방식으로 @RequestParam을 사용한다. 두번째 방식 URL에 변수값을 포함해서 넘겨주는 방식으로 Rest API에서 값을 호출하는 경우 주로 많이 사용되며 @PathVariable 을 사용한다. | @RequestParam이란? @GetMapping("getDriver") public String viewName..

Spring/Spring Boot 2021.11.23

[Spring] Controller에서 html page return rendering 하기 (@RestController VS @Controller)

Spring에서 index 페이지는 resource/static 에 있으면 자동으로 home 화면으로 렌더링이 된다. 그러면 다른페이지로 이동하기위해서는 어떻게 해야할 까?? 아 나는 인텔리제이를 사용한다. 오늘은 이거에 대해 기록을 남겨보자 1. Controller 나는 Spring 의 구조를 Controller - Service - repoistory로 나누었다. Controller에서 clinet에 대한 모든 요청과 응답을 처리한다. SSR(ServerSideRenderning) 을 쓰지않고 CSR(Client Server Rendering)로 구현하기 위해서, 모든 요청과 응답을 JSON으로 처리하고자 한다. 2. 타임리프 S3 front를 배포하지 않은 로컬에서 html 파일을 렌더링 하기위해서..

Spring/Spring Boot 2021.11.23

[Spring] JPA Auditting 과 TimeStamp Class (createAt, UpdateAt 자동 기록)

Spring이든 뭐든 프로젝트를 하다보면, 테이블의 생성기간과, 수정시간이 필요할 때가 있다. 오늘은 이 테이블에 생성, 수정시간을 기록할 수 있는 컬럼을 효율적으로 작성하는 법에 대해 공부해보자 단순하게 시간을 기록하는 컬럼을 각 테이블(Domain)에 추가해 줘도 되지만, 이렇게 하면 코드의 중복이 생긴다. 그렇다면, JAVA를 JAVA스럽게 사용하기위해서, 상속을 생각해보자 추상 클래스를 만들고 그 안에 멤버변수를 필요한 테이블에 컬럼을 받을 수 있지않을까????? SPring에서는 이러한 기능을 JPA Auditing 이라고 한다!!@ JPA Auditing 이란 Auddit 이란 = 감시하다, 감사하다 --------- > 즉, 나는 계속해소 탐지하다로 이해를 하려한다. Java에서 ORM 기술..

Spring/Spring Boot 2021.11.22

[내일배움캠프] 3차 프로젝트 - "강만다(강아지를 만나다)" / S.A(Starting Assignment)

3차 프로젝트에서는!! Flask로 제작한 마루마루 프로젝트를 Spring으로 옮겨 본다.!!! 이걸 위해 서버사이드 렌더링을 모두 걷어내고 API 단위로 전부 갈아치웠다!!!!!!!!!! 1. Converting Flask를 Spring으로 converting하기 때문에, Spring과 익숙해지고, 팀원들이 짠 부분을 서로 바꿔서 컨버팅함으로써 프로젝트 코드에 익숙해지고, 다른 사람의 코드 스타일도 보는 걸 목적으로 한다. 2. TimeLine 저번 프로젝트때 시간 내에 배포까지 하지 못해, 이번 프로젝트에는 타임라인 기간을 엄수하기로 했다. 뿐만 아니라, 중간중간, 짧게 코드리뷰를 하기로 했다. 3. 추가 기능 욕심 내기 팀원들끼리 하고싶은 기능을 무작정 적어봤다. 그리고 우선순위를 정해 체크했다. ..

[TIL] 11.13 -스파르타 내일배움캠프 62일차

TIL 1. DI 2. IOC 컨테이너 3. 스프링 Bean 객체 그동안의 하루들 1. 좋았던 점 이게 을마만의 TIL이냐... 2주 하고도 2일 만이다..ㅎ 그동안 참 많은 일이있었다... 굉장히 바빴다 일단 내배캠 과정 하면서 가장 힘들었던,, 졸업작품 학술제 끝났다.. 야호!! 내배캠하면서 동시에 하느라 굉장히 힘들었고, 여유롭게 할려고 짬짬이 계속했음에도,, 결국 밤을 계속 셌다는... 슬픈 전설이,,,ㅠㅠ 그래도 결과가 매우매우 좋다!! 히히히 나 대상탔다 대상!! 야호!! 졸업만 시켜주세여 하고있었는데,, 대상이라니.. 감격이다 전혀 어떻게 접근해야할지도 몰랐던, 안전보행길 탐색 지도... 결국 해냈다..ㅠㅠ 이제 졸업논문만 쓰자아아아 스프링도 새롭게 배우고 있다 역시 많이 어렵다 모를 수록 ..

[Spring] 09. DI(의존성 주입) 과 IOC 컨테이너

이번에는 DI - 의존성 주입이라는 스프링의 주요한 기능에대해서 알아보자 후... 너무누무 어려워 DI - Dependence Injection 문자그래도, 의존성의 주입, 독립성의 주입이다. 스프링은 자바언어로 이루어진 프레임워크로써, 객체지향을 지향한다. 따라서 각 객체간의 종속성을 제거하기위해 DI를 사용한다, 그럼 DI란 뭘까? 내가 이해한 바로, 스프링은 메모리를 Bean 이라는 객체로 관리한다. 각 객체가 각각에 맞는 Bean객체(많은 종류의 빈객체가 존재함)임을 명시해주면(어노테이션) Spring은, 그 객체(Class)를 명시해준 Bean 객체(어떤 역할을 하는 객체인지) 파악해, Bean 객체로서 관리한다. 이러한 Bean 객체는 한 네이밍당 하나의 공간을 차지하고 있다. 그렇다면, 이렇..

Spring/Spring Boot 2021.11.12

[Spring] 08. Controller 만들기 - 스피링 API (Get, POST, PUT, DELETE)

이번엔 사용자 서비스의 제일 밀접한 부분, Controller 를 만들어 보자 MVC 패턴은 View 에서 사용자의 앞단을 정의하지만, MSA 아키텍쳐가 점점 상용화 되면서 Spring ORM을 사용하기 좋은 환경이 되었고, 지금까지 하고있는 Spring 구조, Controller-Service-Repository 구조로 발전해 왔다. 따라서 기존의 View 부분을, API를 설계해, 프론트와 완전히 분리하여, 단순하게 JSON데이를 주고받는 것 만으로 구현이 가능해졌다. 자 이제 해보자! API 👉 클라이언트 - 서버 간의 약속입니다. 클라이언트가 정한대로 서버에게 요청(Request)을 보내면, 서버가 요구사항을 처리하여 응답(Response)을 반환합니다. REST 👉 REST란, 주소에 명사, 요..

Spring/Spring Boot 2021.11.11

[Spring] 07. DTO를 사용하는 이유 - Data Transfer Object

1. DTO란? DTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans)입니다. DTO를 사용하는 이유는, 자바 domain 객체를 바로 접근하지 않기 위해서 입니다. 고로! 가볍게 생각헤서, 테이블을 조작하기 위해 한단계더 거쳐가는 완충제라고 생각하면 됩니다. ✅ 테이블을 직접적으로 접근하지 않음으로써, 데이터를 보호하기 위함 생성하기 src > main > java > com.sparta.item01 > dto 패키지 생성 src > main > java > com.sparta.item01 > dto 에 LectureRequestDto 파일 생성 LectureRequestDto.java @NoArgsConstructor @Getter public ..

Spring/Spring Boot 2021.11.11