본문 바로가기

Spring18

@Controller와 @RestController의 차이점 @Controller와 @RestContoller의 차이점이 궁금함에도 유사한 기능을 하나보다 하며 넘어갔었습니다. 그런데 역시나.. 기능이 다르다는 걸 알게되었고, 이 참에 그 둘의 차이에 대해서 좀 더 알아보려고 합니다. 먼저 문제가 있던 코드는 아래 코드였습니다. 제 의도는 /login 으로 접속했을 때, template directory에 저장되어 있는 loginForm.html을 view로 보여주는 것이었습니다.그런데 의도와는 다르게 return 해주는 String 값이 화면에 나왔습니다. 보통 이런 경우는 @ResponseBody가 붙어있을 때 나타나는데, 그것도 없고 어떤게 문제일까 생각해보았습니다. 그러다가 @RestController를 @Controller로 바꾸어보았고, 원래 의도대로 .. 2022. 8. 6.
Authorization(인가)-인가 내부 절차 & 권한 설정하기 지난번에는 Authentication(인증)에 대해 알아보았고, 이번에는 사용자마다 접근 권한을 다르게 설정하는 authorization(인가)에 대해서 알아보겠습니다. 블로그에 글을 쓰려면 해당 블로그에 대한 관리자 권한이 있어야 글 쓰기 및 수정이 가능합니다. 해당 블로그 수정 권한이 없는 유저는 글 수정 페이지에 접근할 수가 없습니다. 웹사이트를 이용할 때 이런식으로 권한을 차등적으로 부여하는 경우가 상당히 많이 있습니다. Spring Security에서도 이런 권한 부여와 관련된 기능을 제공하는데, 내부 절차는 어떤지와 어떻게 구현하는지 차근차근 알아보겠습니다. Authorization 내부 절차 인가 작업은 FilterSecurityInterceptor에서 이루어질 수 있습니다. console창.. 2022. 8. 1.
em.flush() vs tx.commit() em.flush() 와 tx.commit()의 차이는 무엇일까요? tx.commit()을 하면 내부적으로 em.flush()가 수행된다고 합니다. em.flush()는 데이터를 DB에 저장해주는 역할을 하는데, tx.commit()도 DB에 데이터를 저장하는 용도로 알고 있었기 때문에 tx.commit()은 em.flush()외에 추가적으로 어떤 기능을 하는 것인지 궁금해졌습니다. 1 2 3 4 5 em.flush() - It saves the entity immediately to the database with in a transaction to be used further and it can be rolled back. em.getTransaction().commit - It marks the en.. 2022. 7. 23.
Entity mapping-Cascade의 역할 Cascade의 역할을 제대로 알지 못해 힘들었던 며칠 🥲 눙물이 납니다.. 그래도 덕분에 Entity mapping에 대해서도 좀 더 잘 알게되고 Entity와 Dto 간 mapping도 여러번 수정해 보며 어떻게 하는 것인지 좀 더 알게된 시간이었습니다. 먼저 Cascading이 언제 필요한 것인지 보면, Cascading은 두 entity의 존재가 서로에게 의존적일 때 필요합니다. 예를 들어서, Member-Address라는 관계가 있다고 했을 때 Address는 Member가 있어야만 그 의미를 갖게 됩니다. (Member 정보는 없는데 주소만 있다면 누구의 주소를 의미하는지 그 쓰임이 무색해질테니까요) 그렇기 때문에 Member 정보를 삭제할 때 그와 관계된 Address 정보도 같이 삭제되어야.. 2022. 7. 17.
Hibernate에러: object references an unsaved transient instance - save the transient instance before flushing 두번 정도 마주친적이 있는 object references an unsaved transient instance - save the transient instance before flushing 에러인데, 어떤 에러이고 어떻게 해결할 수 있는지 알아보려고 합니다. org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: //(1) object references an unsaved transient instance - save the transient instance before flushing : com.codestates.order.entity.OrderCoffee.o.. 2022. 7. 14.
[Spring] Spring JDBC 사용하기 Spring JDBC를 사용하기 위해서는 먼저 jdbc dependency를 추가해주어야 됩니다. org.springframework.boot spring-boot-starter-data-jdbc 그리고 JdbcTemplate class의 객체를 이용하여 jdbc를 사용하면 됩니다. Dao처럼 repository 역할을 하는 class에 주입하여 사용하게 되는데, 아래 코드를 참고하시면 됩니다. @Repository public class PersonJdbcDao { @Autowired JdbcTemplate jdbcTemplate; //... } 이 jdbcTemplate는 CRUD 기능을 하는 method들이 정의되어 있고, 그 method와 sql query문을 사용해서 CRUD를 구현하게 되는 것.. 2022. 7. 2.
반응형