Category: 스터디LAB

언어, 기술, 알고리즘, 수학, 네트워킹,

0

TDD

의 목표 => 작동하는 Clean Code를 만드는게 목표
TDD 원칙
자동화된 테스트가 실패한 경우만 새로운 코드를 작성한다. (대원칙) – 잘동작중인 코드를 변경하지 말라
중복을 제거한다. (대원칙) – 리팩토링
실패하는 테스트를 작성하기 전엔 코드를 작성 하지 않음 (대원칙을 지키기위한) – 테스트 코드를 먼저 작성한다.
실패하는 테스트 코드를 한번에 하나 이상 작성하지 않는다.(대원칙을 지키기위한) 
실패하는 테스트를 통과하기에 충분한 정도를 넘는 코드를 작성하지 않는다. (대원칙을 지키기위한)  – 열을 알지 말자 
TDD의 개발 발식 

0

Spring Security

WebSecurityConfigurerAdapter를 상속 받아 HttpSecurity 및 WebSecurity를 설정하고 Filter 및 Provider를 등록 한다. HttpSecurity 설정은 login page, cors, csrf 등 다양하게 할 수 있다. provider는 JWT 혹은 Username, Password 로 인증을 제공하는 역할을 한다.
Username, Password로 인증을 처리하고 싶은 경우 UsernamePasswordAuthenticationFilter를 상속받아 Custom filter를 작성한다. 그리고 처리한 데이터는 Authentication Manager로 넘겨서 인증 처리를 한다. 
인증 성공 및 실패에 대해 Handler를 등록한다. 

0

JPA 관련 application.properties

아래 URL 에서 application.properties에 들어갈 h2, datasource설정을 찾을수 있다. 

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties-data

hikari 는 DB 와의 Connection pool을 관리해주는 역할을 한다. 서버 실행시 H2는 schema.sql 의 쿼리를 한번 실행한다. 이를 이용해 테이블을 만들수 있다. 

0

Spring Boot JPA (2)

객체지향 쿼리 언어 

JPQL, Criteria 쿠리, 네이티브 SQL, JDBC, MyBatis SQL 매퍼 프레임워크 사용 

JPQL 특징
키워드는 대소문자 구분 안함 
엔티티명을 사용
별칭이 필수
TypedQuery — 반환타입이 명확한 경우 Query — 반환타입이 명확하지 않는 경우 (OBJ로 반환)

0

Spring Boot JPA (1)

ORM 사용 이유 

SQL 의존 개발, 코드의 반복 즉 데이터베이스 의존적 개발을 지양 하기 위해  

장점 
비지니스 로직에 집중할 수 있다. 
선언문 할당 등이 없어짐 
코드의 재상용 유지보수성 
DBMS 종속성이 적다. => 데이터베이스를 교체해도 시간이 덜 걸릴 수 있다

react-native-crypto-js, crypto-js, AES 암호화 0

react-native-crypto-js, crypto-js, AES 암호화

NodeJS 서버와 React-native 간에 데이터를 주고 받는데,  AES 암호화를 이용해 주고 받을일이 생겼다.

react-native-crypto, react-native-crypto-js, crypto-js, crypto 패키지를 테스트 하면서 코딩을 했는데 … 엄청난 뻘짓과 삽질 후에 결국 crypto-js 로 AES 암호화를 구현했다. 

0

React- native 안드로이드 앱 번들(abb) 및 배포

관리자 권한으로 CMD 실행 후 C:\Program Files\Java\jdk1.8.0_171\bin 폴더로 이동
keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

위 결과로 생성된 my-upload-key[자기가 원하는 이름 가능].keystore 을 android/app 으로 이동 (my-key-alias 도 자기가 원하는 이름으로 하는게 가능하며 이름들은 향후 절차를 위해 기억해야 한다.)
android/gradle.properties 에서 Gradle 변수를 설정하고 android/app/build.gradle 에 서명 설정 코드 추가 (자세한 내용 공식 홈 참조)