본문 바로가기

STUDY

(287)
Java | AES-256 암/복호화 AES? AES(Advanced Encryption Standard): 고급 암호화 표준 암호화와 복호화에 동일한 키를 사용하는 대칭키 알고리즘방식 대칭키 방식을 사용하기 때문에 비대칭키 보다 빠른 속도 AES-128, AES-192, AES-256의 종류가 있음 (뒤에 붙은 숫자는 키의 길이(단위: bit)) Java에서는 AES 암/복호화를 위한 API를 제공하고 있다! (java.security, javax.crypto) AES 암/복호화에 필요한 것들 SecretKey 말그대로 암/복호화에 사용되는 key다. 종류(AES 128, 192, 256)에 따라 길이가 달라진다. private static final String SECRET_KEY = "fUjXn2r5u8x/A?D(G+KbPdSgVkYp..
Spring WebFlux Spring WebFlux Spring Framework, Spring Web MVC를 포함하는 기존의 웹 프레임워크는 Servlet API와 Servlet containers를 통해 만들어졌었다. Spring WebFlux는 reactive-stack web framework다. 스프링 5.0버전에 추가된 개념으로, non-blocking과 Reactive Streams를 완전히 지원한다. 내장서버는 기본적으로 Tomcat이 아닌 Netty 서버를 사용한다. (톰캣으로 사용할 수는 있다) Spring Web MVC와 Spring Web Flux는 동시에 사용할 수 있다. 두 가지를 동시에 사용하게 되면 MVC가 기본으로 적용되고 Spring MVC controller에 reactive WebClient..
URI와 URL 결론: URL은 URI에 포함된 개념이다. 둘을 완전히 분리해서 생각할 수 없고, 거의 동일하게 생각해도 무방하다. URI(Uniform Resource Identifier) 리소스를 식별하는 통합된 방법 Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원. URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL(Uniform Resource Locator) 리소스가 있는 위치 URL은 scheme://[userinfo@]host:[:port][/path][?query][#fragment]와 같은 구조로 구성되어 있다. scheme(스키마)에는 주로 프로토콜(http, https 등)을 사용한다 userinfo는 URL에 사용자 정..
React | TypeScript 반복문으로 컴포넌트 렌더 ( pass props ) map 메서드로 렌더링 하는 법.. 타입스크립트 어렵다 부모 컴포넌트 Place라는 인터페이스를 선언한다. interface는 객체의 속성이나 함수의 파라미터 등에 대해 정의할 때 많이 사용된다. interface Place { name: string; addr: string; } Place를 placeList라는 Place배열을 타입으로 갖는 PlacesProps인터페이스를 선언했다. interface PlacesProps { placeList: Place[]; } 그리고 Places컴포넌트를 선언하는데, 함수형 컴포넌트로 선언해주었고, 인자값으로 PlacesProps를 받아 그 안의 속성인 placeList를 비구조화 할당으로 꺼낸다. placeList는 배열이므로 map을 이용해 반복하여 Place..
React | TypeScript로 시작하기 create-react-app create-react-app을 이용하면 된다. --template typescript만 붙여서 생성하면 끝! npm create-react-app [projectname] --template typescriptprops 전달하기 리스트를 전달해보자.. const placeList: Array = [ { name: '어딘가', addr: '서울특별시 광진구 구천면로 20', }, ]; function App() { return ( ); }그리고 Map컴포넌트에서는 props 타입을 제네릭으로 넣어서 사용한다. type MapProps = { placeList: Array; }; const Map: React.FC = ({placeList}) =>..
TS | TypeScript에서 Kakao SDK 사용하기 (카카오 맵, React) 토이프로젝트 진행을 무턱대고 타입스크립트로 해보기로 했다... index.html에 SDK추가 카카오 디벨로퍼 사이트에서 본인 프로젝트 등록을 해줘야 하는데, 가이드를 참고해서 진행하면 된다. public경로에 있는 index.html에 카카오 맵 SDK를 붙여넣는다. appKey부분을 수정하는 것 잊지말기.. useEffect()에서 스크립트를 동적으로 추가해주는 방법도 있다. 자바스크립트에서 지도를 생성하는 법 new kakao.~를 통해 포지션을 등록하거나 지도를 생성할 수 있다. 타입스크립트에서도 new kakao.~를 통해 지도를 생성해야 한다! var container = document.getElementById('map'); var options = { center: new ..
Spring Boot | JPA 사용해보기 (2) Spring Data JPA Spring Data JPA 지난 글에서 JPA만 사용해서 EntityManager를 이용해 DB와 소통했다면, 이번에는 Spring Data JPA를 사용해 볼 것이다. Spring Data JPA는 리포지토리에 구현클래스 없이 인터페이스만으로 개발을 완료할 수 있다. JPA를 더 쉽게 도와주는 것일 뿐! 실무에서는 JPA와 스프링데이터JPA를 기본으로 사용하고, 복잡한 동적 쿼리는 Querydsl이라는 라이브러리를 사용한다고 한다. (출처: 인프런 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술) Repository를 Spring Data JPA 방식으로 변경 @Repository 애노테이션을 붙이지 않아도 된다! JpaRepository을 상속받아 interface로 ..
oh-my-zsh 단축어 등록 ~/.zshrc파일을 수정하면 된다. # visual studio code로 열어서 수정하기 $ code ~/.zshrc # vi 편집기 $ vi ~/.zshrc 스크롤을 쭉 내리다보면 친절하게 예시까지 들어서 단축어 등록 방법을 알려주고 있다. alias [단축어]=["실제 명령어"]로 입력 # Set personal aliases, overriding those provided by oh-my-zsh libs, # plugins, and themes. Aliases can be placed here, though oh-my-zsh # users are encouraged to define aliases within the ZSH_CUSTOM folder. # For a full list of acti..