본문 바로가기

분류 전체보기202

SPRING SECURITY란? 보안에 활용되는 보안 프레임워크 . 유일무이한 선택지 EX) 어떠한 사용자라도 괜찮은지, 아닌지 LOGIN인이랑, 사실 사용자 인증의 역할을 한다. (네트워크 보안 교과목에서 수강하였다) 이에 추가적으로, 운영자와 사용자의 ROLE을 분할한다 (ROLE-BASED-ACCESS라고 볼 수 있다) 우리가 필요로하는 어떤 보안 절차라도 사용이 가능하다 . 스프링의 가장 유연하고 쉽게 구현된 기능은 인증과, 인가이다. 인증 (Authentication) 인증은 사용자가 누구운지 확인하는 절차이다. ex) 로그인 사용자의 인증을 주로 인증이라고 호칭한다. *주의해야할 핵심 기능 -> 로그인을 한번 하고 나면, 해당 user가 user가 맞음을 계속 인증받아야 한다. case 1 ) 모든 request시마다, id.. 2024. 1. 8.
JPA TEST @DATAJPATEST가 지원해준다. QUERY METHOD를 주로 사용한다. SPRING DATA JPA에서 크게 활용한다. 사실 CRUD는 굳이 TEST를 하지 않아도 되긴 한다 (넣어지기 때문에) 그래도 한번 TEST해보자 TESTENTITYMANAGER -> TEST용 ENTITYMANAGER 사용 가능 AUTOCONFIGURETESTDATABASE - > TEST용 인메모리 DB를 다른환경으로 바꾸고자 할 때 @JDBCTEST -> DATASOURCE만을 TEST @DATAJDBCTEST -> DATASOURCE+ ETC 실제 구현을 repository에서 해주기 때문에, 일단 해당 파트는 구현하진 않고 후에 만약에 내가 추가적으로 datarepository에서 구현을 하였거나 다른 경우가 존재.. 2024. 1. 7.
MYSQL 적용 ++ POSTGRESQL 까지 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/study?characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password= spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.format_sql=true 이와 같은 내용들을 설정해주어야 하고, h2.console.enabled = false로 변경해주어야한다. 위의 updat.. 2024. 1. 7.
DataSource, Transacation Manager 1 DataSource 물리적인 데이터베이스 정보를 담는 인터페이스 . EmbaddedDataBaseBuilder를 주로 사용함( 구현체) , DataSourceBuilder(jdbc DataSource 사용) 그때 그때 세팅 해주면 된다. 2. Transaction Manager JpaTransactionManager가 기본 spring data jpa 사용 구현체. DataSourceTransactionManager(JDBC DATASOURCE 사용 구현체 ) 2개 이상의 DBMS설정이 필요할때, 1. DB를 세팅 2. ENTITYMANAGERFACTORY를 설정해줘야한다. (LOCALCONTAINERENTITYMANAGERFACTORYBEAN) 얘는, 빈으로 @Bean으로 달아주고 구현체를 retu.. 2024. 1. 7.
SPRING DATA JPA 실제 활용 1. @Repository 기본적으로 @Component와 굉장히 유사하나, repository 전용이다. 즉 해당 class를 빈으로 등록한다. 가장 큰 차이는? peristenet layer의 발생 예외를 잡아서 DataAccessException으로 처리해준다. SPRING DATA JPA를 사용한다면, JPAREPOSITORY 안에 기본적으로 어노테이션이 되어있기 때문에 추가해줄 필요가 없다. REPOSITORY -> CRUDREPOSITORY ->LISTCRUD->JPAREPOSITORY 순으로 상속받아오는 내부 구조 . 두가지 방법, 하는 역할이 동일하다. 앞서 말한대로 JPA를 쓸거라면 QUERY를 직접 작성하지 않고, JPAREPOSITORY에 기능을 위임해서 사용하는것을 강하게 추천한다... 2024. 1. 7.
SPRING DATA JPA 개념들 프레임 워크는 이미 만들어진 구조와 도구의 집합으로 , 어플리케이션 개발의 속도와 효율을 지원한다. 템플릿은 이미 모든 것이 결정된 모양에 원하는 데이터를 삽입. FRAMEWORK는, 도구나 라이브러리의 모음 라이브러리는 도구 들의 모음. 프레임 워크는 자동차, 라이브러리는 바퀴. ORM? OBJECT RELATIONAL MAPPING 객체 지향 언어를 활용 즉, DB DATA를 자바 객체와 매핑한다. RDBMS를 객체 지향 DB로 가상화한다. (DB를 추상화한다) 즉, INSERT와 SELECT 등의 코드만을 작성하고, 그 외의 접근 포인터 등의 문제는 프로그램에게 위임한다. 효과 -> INETRFACE에 의존하여 위임하여 작성하니, 특정 DB(MY SQL 등등)을 고려하는 것을 줄인다. JPA JAV.. 2024. 1. 7.
SET, MAP sys로 input을받을때 , .rstrip()을 붙여주면 자동으로 제거된다. .split()은 배열형태로 받음에 기억 sys를 input에 하려면, input.split()을 포함해서 작성해야 한다. input시 마다 이름이 열림에 주의하자. Set은 ,집합 형태로, 중복이없다 S.add()로 추가한다. S.remove로 제거한다 dict를 초기화 하는 방법도 기억하자. 백준 10816 dict는 hash로 구성되어 삽입 , 정렬, 모든것들이 O(1)이다. 몇개있는지를 찾는법. NARR을 받아서 -> (list(map(int,sys~~~.split())으로 받은것 하나하나씩을 int로 변경하여 list로 넣을수있따. 그것들을 dictionary에 넣는다. for i in Narr : if i in cn.. 2024. 1. 7.
2단원 소프트웨어 개발 인수테스트 ㅡ 사용자의 요구사항 확인 (알파 , 베타) 1. 자료 구조 **** 선형 구조 1. 배열 각 데이터마다 동일한 이름 변수를 사용한다. 2. 선형 리스트 연속 리스트 배열과 굉장히 유사하다. 삭제와 삽입시 해당 빈 공간을 밀어주고 땡겨주기가 필요 연결 리스트(Linked list) HEAD와 TAIL있는 [ ] 구조 기억하지? 바로 그것 .(검색은 느리고 중간 끊어지면 찾기가 힘듬) 하지만 삽입 삭제가 되게 쉬웠다. 3. 스택 LIFO. 꽉 채워진 상태에서 OVERFLOW . 삭제할 데이터 가 없어서 UNDERFLOW PUSH(삽입), POP(삭제) OVERFLOW> 후위 표기, 깊이 우선 탐색에 사용. 작업스케줄링엔 사용 불가. 차라리 수식 계산은 가능 TOP -> 이제 곧 나갈애 4. 큐 .. 2024. 1. 6.
기타 기능 2 , devtool, actuator Devtools -> 스프링부트 개발의 절친 . (일단 넣는것을 추천한다. ) 스프링 부트 모듈들의 세부 설정을 , 개발에 적합하게 자동으로 변경해줌 ex) 캐시 끄기 등이 자동으로 발생. 1. Automatic Restart 자바 코드가 변경되면 자동으로 애프리케이션 재시작 Restart vs Cold start 자주 바뀌는 부분은 restart(이를 통해, 빠르게 자동 재시작 가능) restart의 triggering- > 코드의 변경. cold start는 쉽게, 직접 부트를 재시작 한 것이다. Restart보다 더 빠른것은? Reload. 매우매우 빠르다. 다만 유료 . ex) 내가 바꾼 events코드가, 띄운 이후 바로 반영된다. 2. Live reload 정적 페이지 변경시, 자동 브라우저 .. 2024. 1. 5.
실제 예시 2 : 보험가입심사 보험 개요 생명 보험 : 출생, 사망 , 불의의 사고로 인한 경제적 손실 보전 (거의 사망,종신, 정기 , 연금) (손해와 겹치기도 함) ex-> 상해,질병,간병(제3보험) 손해 보험 : 우연한 사건으로 인해 발생하는 재산상의 손해를 보상해주는 제도 (화재, 해상 , 자동차 등등 보험) 화재 보험 : 우연한 화재 사고로 입은 재산상 손해 보상 판매 채널(영업채널) 대면, ga(대리점), Tm(전화),dm(다이랙트),BM(대리점의 변화, 은행 창고에서도 판매 ) 보험료? 보험계약자가 보험회사에 납부하는 보험요금. 보험금 ? 보험회사가 보험제약자에게 지급하는 보험지급금. 계약자는 , 보험계약을 체결하고, 보험료의 지급할 의무 피보험자 = 돈을 받으며, 보험에 가입된 생명과 신체의 소유자 수익자 = 보험금을 .. 2024. 1. 5.