목록Study/Java & Kotlin (46)
Hayden's Archive
JPA가 제공하는 기능 설계 : 엔티티와 테이블을 매핑 매핑한 엔티티를 실제 사용 EntityManagerFactory & EntityManager EntityManagerFactory 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성 EntityManager 엔티티를 관리하는 관리자 엔티티를 저장/수정/삭제/조회 등 엔티티와 관련된 모든 일을 함 참고) EntityManagerFactory와 EntityManager의 생성 관련 내용 https://hayden-archive.tistory.com/478 EntityManager는 데이터베이스 연결이 꼭 필요한 시점까지 커넥션을 얻지 않음 보통 트랜잭션을 시작할 때 커넥션 획득 하이버네이트를 포함한..
JPA 구현체로 하이버네이트를 사용하기 위한 핵심 라이브러리 hibernate-core : 하이버네이트 라이브러리 hibernate-jpa-2.1-api : JPA 2.1 표준 API를 모아둔 라이브러리 hibernate-entitymanager : 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리 hibernate-core와 hibernate-jpa-2.1-api를 함께 내려받음 매핑 어노테이션 어노테이션 설명 @Entity 이 클래스를 테이블과 매핑한다고 JPA에 알려줌 @Entity가 사용된 클래스=엔티티 클래스 @Table 엔티티 클래스에 매핑할 테이블 정보를 알려줌 @Id 필드를 Primary Key에 매핑 @Id가 사용된 필드=식별자 필드 @Column 필드를 컬럼에 매..
JPA는 이제껏 맛보기 수준으로만 경험해봤는데 그때그때 구글링으로만 얕은 지식을 쌓는 것은 한계가 있다고 느꼈다. 백기선님도 JPA를 쓸 거면 제대로 공부하고 써야 효과를 볼 수 있고 공부 안 하고 대충 구글링만 해서 쓸 거면 차라리 안 쓰느니만 못하다고 하셨음...( https://youtu.be/brE0tYOV9jQ ) JPA 공부해야지 계속 생각만 하고 있다가 이번에 사내 스터디를 통해 김영한님의 책으로 JPA 공부를 시작하게 되었다. 책의 두께를 보니 만만치 않겠다 싶지만... 스터디의 장점을 살려 약속한 분량을 꾸준히 읽다 보면 완독을 하게 될테니 조금씩 시간을 내서 꾸준히 읽어봐야겠다. 이건 내가 보려고 정리해두는 기록~! 도입 JPA는 크게 ①테이블을 어떻게 매핑해야 하는지에 관한 설계 부분..
주구장창 이클립스만 쓰다가 뒤늦게 인텔리제이로 넘어왔는데 너무 신세계다... 아니 이런 기능을 다...? 하면서 놀라워하고 빠른 구동 속도에도 감탄하고 있다. 너무 편리해서 이전으로 못 돌아갈 것 같은데 내 손가락이 이클립스 단축키에 최적화되어 있어서 인텔리제이 단축키에 적응하고자 내가 보려고 자주 사용하는 단축키 위주로 정리하고자 한다. 필요한 단축키나 설정이 생길 때마다 계속해서 업데이트 예정 Import 단축키 - 전체 import : Ctrl + Alt + O - 하나씩 import : 클래스 이름 클릭하고 Alt + Enter https://soungnote.tistory.com/21 [IntelliJ] Import 단축키 설정 Exlipse 에서는 CTRL + SHIFT + O 눌러 패키지를 ..
요즘 사용자 정보를 가져와서 로그를 남기는 작업을 하고 있다. 거의 모든 로그를 남기다 보니 사용자 아이피, 현재 시간, 사용자 아이디를 계속해서 가져와야 할 일이 생겼다. 아무래도 계속해서 공통적으로 쓰이는 코드라면 모듈화하는 것이 좋다. 따라서 프로젝트 내에 ClientInfo.java라는 클래스를 따로 만들었고, Bean으로 사용할 수 있도록 @Component로 어노테이션을 붙여줬다. 전체 코드 : github.com/devyeony/smart-data-tracing-management/blob/main/src/main/java/kr/com/inspect/util/ClientInfo.java devyeony/smart-data-tracing-management Contribute to devyeo..
요즘 Spring Legacy Project에 스프링 시큐리티를 적용하여 작업을 하고 있다. SecurityConfig에 설정을 입력해서 암호화 후 DB에 회원 등록, 회원 로그인 및 로그아웃, 권한별로 페이지 접근 제한 및 스프링 시큐리티 태그 라이브러리 사용까지 완료하였다. 물론 중간중간에 시행착오와 삽질이 있었지만 그간 해보지 않았던 내용을 책과 구글의 도움을 받아 혼자서 배우고 익혀서 실습하고 성공했다는 데 보람을 느낀다. 스프링 시큐리티는 중간에 필터 하나 더 추가하는 것만으로 개발자가 인증 및 인가 절차를 편하게 구축할 수 있는 강력한 인터페이스를 제공해줘서 실제로 적용해보니까 이걸 왜 쓰는지 알겠다. 이제는 여기에 자동 로그인을 추가해볼까 한다. 나는 프로젝트에서 xml이 아닌 Java Co..
참고 : 책 - 코드로 배우는 스프링 웹 프로젝트 ( book.naver.com/bookdb/book_detail.nhn?bid=13993776 ) 카페 - 구멍가게코딩단( cafe.naver.com/gugucoding ) 인증(Authentication)과 권한 부여(Authorization - 인가) 인증 : 자신을 증명할만한 자료를 제시해서 증명하는 것 스프링 시큐리티에서 가장 중요한 역할을 하는 존재가 인증을 담당하는 AuthenticationManager(인증 매니저). 권한 부여 : 남에 의해서 자격이 부여되는 것 개발자가 스프링 시큐리티를 커스터마이징 하는 방식은 크게 AuthenticationProvider를 직접 구현하는 방식과 실제 처리를 담당하는 UserDetailService를 직접..
참고 : 책 - 코드로 배우는 스프링 웹 프로젝트 ( book.naver.com/bookdb/book_detail.nhn?bid=13993776 ) 카페 - 구멍가게코딩단( cafe.naver.com/gugucoding ) codevang.tistory.com/266 Spring Security 설명 거의 대부분 웹 기반 프로젝트에서 사용자의 권한이나 등급에 기반을 두는 로그인 체크를 이용 스프링 시큐리티를 이용하면 다음과 같은 작업들을 간편히 처리할 수 있음 로그인 처리와 CSRF 토큰 처리 암호화 처리 자동 로그인 JSP에서의 로그인 처리 스프링 시큐리티의 기본 동작 방식 : 서블릿의 여러 종류의 필터(Filter)와 인터셉터(Interceptor)를 이용해서 처리 필터는 서블릿에서 말하는 단순한 필..
관련 포스팅 : hayden-archve.tistory.com/376 위 포스팅을 참고해서 PuTTY를 통해 해당 서버에 접속한다. 우선 서버에 자바와 톰캣이 설치되어 있어야 한다. linuxize.com/post/how-to-install-tomcat-9-on-ubuntu-20-04/ tomcat 경로에 chown(소유권 변경), chmod(파일권한 변경) 명령어를 활용하여 권한을 설정해준다. 그래야 해당 경로에 파일을 생성, 수정, 삭제할 수 있다. 여기까지 됐으면 tomcat을 실행시킨다. $ service tomcat start 이제 FileZilla Client를 설치한다. $ sudo apt-get install filezilla 아래의 명령어로 filezilla를 실행한다. (또는 프로그램 ..
jjunii486.tistory.com/119 [JSP] 인텔리제이 SRC 경로 에러 해결하기 인텔리제이에서 스프링으로 프로젝트 연습을 하는 중 이런 에러를 봤다. 솔직히 이클립스에서는 src 경로에 저렇게 지정만해줘도 파일의 위치를 인식한다. (Ctrl + 마우스 하고 경로에 갖다 놓으 jjunii486.tistory.com 외부 css 적용하는데 인텔리제이에서는 적용이 되는데 이클립스에서는 적용이 되지 않는 문제가 있었다. 그래서 경로 앞에 Context Path명을 적어줬더니 이클립스에서는 되는데 인텔리제이에서는 적용이 되지 않았다. 방법이 있을 것 같아서 서치해보니 위와 같이 해결할 수 있었다. ${pageContext.request.contextPath} 를 붙여주면 경로 인식 문제를 해결할 수..