-
[JAVA] 람다식 (Lambda expression)DEV/JAVA 2024. 3. 17. 17:57
* 람다식 : 메서드를 하나의 식으로 표현한 것 → 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해줌 → 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어져 람다식을 익명함수라고도 함 int [] arr = new int[5]; Arrays.setAll(arr, (i) -> (int) (Math.random() * 5) + 1); 위의 람다식을 메서드로 표현하면 아래와 같다. int method() { return (int) ((Math.random() * 5) + 1); } * 메서드와 비교했을때 람다식의 장점 ! 간결하면서 이해하기 쉽다. 함수를 만들 필요가 없어 생산성이 좋다. (메서드는 클래스가 필요하며, 객체도 생성해야만 호출해서 사용할 수 있다.) * 람다식 작성법 : 메서드에서..
-
[JPA] 엔티티 매핑DEV/JPA 2024. 3. 7. 23:19
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다. 강의 : 인프런 교육자 : 김영한 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본키 매핑 : @Id 연관관계매핑 : @ManyToOne, @JoinColumn @Entitiy @Entity가 붙은 클래스는 JPA가 관리 * 기본 생성자 필수 * final , enum, interface, inner클래스 사용 X * 저장할 필드에 final 사용 X 속성 : name - JPA에서 사용할 엔티티 이름 지정 - 기본값은 클래스 이름을 그대로 사용 - 같은 클래스 이름이 없다면 가급적 기본값 사용 @Table @Table은 엔티티와 매핑할 테이블 지정 속성 - name : 매핑할 테이블 이름 (엔티티이름을사..
-
[JPA] 영속성 관리DEV/JPA 2024. 2. 22. 02:12
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다. 강의 : 인프런 교육자 : 김영한 영속성 컨텍스트 → 엔티티를 영구 저장하는 환경 → EntityManager.persist(entity); 엔티티의 생명주기 - 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 ex ) //객체를 생성한 상태 (비영속 상태) Member meber = new Member(); member.setId(100L); member.setName("HelloJPA"); - 영속 : 영속성 컨텍스트에 관리되는 상태 ex ) EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); //객체를 저장한 상태 (영속상태) em.persist(me..
-
[JPA] 시작하기, 기본 설정DEV/JPA 2024. 2. 14. 02:40
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다. 강의 : 인프런 교육자 : 김영한 JPA 시작하기 1. pom.xml에 JPA 하이버네이트, 사용할 데이터베이스 세팅 org.hibernate hibernate-core 6.4.2.Final com.h2database h2 2.2.224 2. /META-INF/persistence.xml JPA 설정파일 생성 * Java 17은 클래스명이 javax 에서 jakarta로 변경되었으니 유의 * JPA의 경우 특정 데이터베이스에 종속되지 않는 장점이 있음 → hibernate.dialect 속성에 지정 JPA 구동방식 1. JPA 설정파일 조회 2. 엔티티 매니저 팩토리 생성 3. 엔티티 매니저 팩토리에 의해 엔티티 매니저들을 생성 주의사항 * 엔티티..
-
[JPA] 등장 배경, 개념 정리DEV/JPA 2024. 2. 11. 02:37
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다. 강의 : 인프런 교육자 : 김영한 JPA 등장 배경 * SQL 중심적인 개발의 문제점 CRUD → 무한 반복, 지루한 코드 관계형 DB → SQL에 의존적인 개발을 피하기 어려움 그러나, 현실적인 대안은 관계형 데이터베이스이며, 다음과 같은 패러다임의 불일치가 존재. * 객체와 관계형 데이터베이스의 차이 상속의 유무 연관 관계 객체 : 참조 사용 (ex. member.getTeam() ) 테이블 : 외래키 사용 (ex. JOIN ON T.TEAM_ID = M.TEAM_ID ) 데이터 타입 객체 != 컬럼 데이터 식별 방법 같은 식별자를 통해 DB에서 조회하여 담은 객체는 서로 다름 객체 != 객체 JPA란? JAVA Persistence API 자..
-
[Spring] Jasypt 프로퍼티스 암호화DEV/Spring 2022. 9. 20. 11:30
프로젝트 중 프로퍼티스 암호화가 필요하여 적용해보았다. 잊기전에 정리. pom.xml 에 해당 라이브러리 사용을 위해 추가 org.jasypt jasypt-spring31 1.9.3 db-context.xml 에 추가 classpath:properties/dbconnect.properties 2번째 bean encryptorConfig에서 algorithm은 PBEWithMD5AndDES password에는 실제 패스워드가 아닌 Key값을 넣어준다. 여기서 해당 key 값도 프로퍼티스에서 가져오는 방식을 사용하고싶었지만 뜻대로 되지않았다.. 혹시 방법이나 안되는 이유를 알고 계신분은 댓글 남겨주시면 감사하겠습니다. @ResponseBody @RequestMapping(value="/encrypt.do",..
-
JavaScript 체크박스 전체선택 및 해제DEV/JavaScript 2021. 9. 30. 18:11
체크박스 관련해서 자주쓰는 코드는 정리해놓으려고 작성한다. 검색하기 귀찮아 .. 전체선택 다음과 같이 전체선택용 체크박스와 일반 체크박스 2개가 있다고 가정하면, function checkAll() { if($("#cboxAll").is(':checked')) { $("input[name=cbox]").prop("checked", true); } else { $("input[name=cbox]").prop("checked", false); } } 이렇게 전체선택 및 해제가 가능하다. 하위 체크박스 1,2가 선택되었을때 전체선택에 체크가 되게하거나 전체선택이 체크된 상태에서 체크박스가 1개라도 체크가 해제될 경우 >> 전체선택 체크가 해제되어야함 $(document).on("click", "input:ch..
-
스트럿츠2.5 기본 환경설정 및 MVC구현DEV/Struts 2021. 1. 21. 15:20
1. Dynamic Web Project 생성 프로젝트명 : Struts2 2. Struts2 다운로드 - http://struts.apache.org - Download - Full Distribution or Essential Dependencies Only zip파일 다운 및 압축해제 저는 간단하게 JSP호출 테스트만 해볼거라서 Essential Dependencies를 다운받았습니다. 3. 라이브러리 추가 압축해제 후 lib폴더에 있는 jar파일들 WebContent-WEB-INF-lib에 복붙 4. web.xml 작성 WEB-INF안에 web.xml이 없다면 프로젝트 우클릭 > Java EE tools > Generate Deployment Descriptor Stub 1 2 3 4 5 6 7 ..