memostack
article thumbnail
Spring Boot 에서 JWT 적용 (Maven 환경)
Backend/Spring Boot 2021. 1. 21. 23:03

dependency 추가 mvnrepository.com/artifact/io.jsonwebtoken/jjwt/0.9.1 ... io.jsonwebtoken jjwt 0.9.1 ... JWT 토큰 생성하기 JwtManager라는 Bean을 생성한다. 공통으로 쓸것이기 때문에 IoC에 담아두고 써도 무관 import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; import java.util.Map; @Component public class JwtManager {..

article thumbnail
Git 계정 변경, fatal: Authentication failed for
ETC 2021. 1. 19. 09:36

원인 git의 계정을 변경하여 git 명령어를 수행하게되면, 아래와 같은 에러가 발생한다. fatal: Authentication failed for 'https://~~' 해결 시스템에 등록된 credential 설정값을 초기화 시켜주면 해결된다. $ git config --system --unset credential.helper​ Username for 'https://github.com': 자신의 계정 username Password for 'https://~@github.com': 자신의 계정 password 참고. 자동 로그인 만약, 매번 로그인하는것이 귀찮다면, 아래 명령어로 로그인 정보를 저장할 수 있다. 저장을 하게되면, 저장된 계정 정보로 알아서 로그인을 수행한다. $ git confi..

article thumbnail
React Router Dom 리액트 라우터 사용하기
Frontend/React 2021. 1. 17. 19:02

React Router Dom 설치 React Router Dom 사용을 위해 모듈을 설치한다. # yarn 설치 $ yarn add react-router-dom # or npm 설치 $ npm install react-router-dom Switch 설정 아래 3가지 경로를 설정한다. http://localhost:3000/about -> about에 관련된 내용 http://localhost:3000/users -> 사용자 프로필에 관련된 내용 http://localhost:3000/ -> 홈 화면 import { BrowserRouter, Link, Switch, Route } from 'react-router-dom' function App() { return ( about users home ..

article thumbnail
SpringBoot, Junit5에서 REST API(Controller) 테스트
Backend/Spring Boot 2021. 1. 15. 12:06

REST API 테스트 Rest API를 테스트할 때는 @WebMvcTest 어노테이션을 사용한다. MockMvc를 생성할때는 MockMvcBuilders를 사용하여 생성한다. 다른 방법으로 MockMvcBuilders를 사용하지 않고, MockMvc에 @Autowired를 사용하여 자동으로 생성하여 주입할 수 있다. @ExtendWith(SpringExtension.class) @WebMvcTest(MemberController.class) @DisplayName("MemberController 테스트") class MemberControllerTest { private MockMvc mvc; @MockBean private MemberService memberService; @BeforeEach pu..

article thumbnail
파이썬(Python)의 특징 정리
Language/Python 2021. 1. 14. 08:07

파이썬의 특징 문법이 쉽고 간결하여, 비교적 쉽게 배울 수 있음 상대적으로 쉽다는 뜻으로 프로그래밍을 처음 접하는 사람한테는 어려울 수 도 있음 foo = 1 print(foo) # 1 foo = "Hello Python" print(foo) # Hello Python 다른 언어에 비해 개발속도가 상당히 빨라서, 나는 프로토 타입을 만들때 파이썬을 주로 사용한다 // Java로 Hello World 찍기 public class Main { public static void main(String[] args) { System.out.println("Hello, World"); } } # Python으로 Hello World 찍기 print("Hello, World"); 무료로 제공해주기 때문에 개발하는데 ..

article thumbnail
SpringBoot, Junit5에서 Service 테스트
Backend/Spring Boot 2021. 1. 13. 22:17

서비스 작성 MemberService.java 생성자 주입을 통해, MemberRepository와 BCryptPasswordEncoder를 주입한다. BCryptPasswordEncoder는 시큐리티에 Bean을 생성했다. (아래 펼쳐서 확인) 더보기 @Configuration @EnableWebSecurity @EnableGlobalAuthentication public class SecurityConfig extends WebSecurityConfigurerAdapter { /** * 비밀번호 암호화 인코딩 방식 정의 * * @return BCryptPasswordEncoder BCrypt 단방향 암호화 */ @Bean public BCryptPasswordEncoder passwordEncoder..

article thumbnail
SpringBoot, Junit5에서 JPA Repository 테스트
Backend/Spring Boot 2021. 1. 6. 17:10

사전 준비 테스트를 위해, Entitiy와 Repository를 생성한다. Entity 생성 Role.java @Entity @Table(name = "role") @Getter @Builder @NoArgsConstructor @AllArgsConstructor(access = AccessLevel.PROTECTED) @ToString public class Role { // PK @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; // 권한 이름 @Column(nullable = false, length = 50) private String roleName; } Repository 생성 RoleRepository.java ..

article thumbnail
Spring Boot, JPA에서 boolean 처리 (@Converter, @Convert 사용)
Backend/Spring Boot 2021. 1. 5. 15:39

엔티티에서는 java의 boolean을 사용하고, Database에서는 Y 또는 N으로 처리하고 싶을때, @Converter 어노테이션을 사용하여 해결할 수 있다. 컨버터 객체 생성 BooleanToYNConverter.java @Converter public class BooleanToYNConverter implements AttributeConverter { /** * Boolean 값을 Y 또는 N 으로 컨버트 * * @param attribute boolean 값 * @return String true 인 경우 Y 또는 false 인 경우 N */ @Override public String convertToDatabaseColumn(Boolean attribute) { return (attrib..

article thumbnail
Spring Boot 프로젝트에 h2 database 설정
Backend/Spring Boot 2021. 1. 5. 14:54

실행환경 SpringBoot Maven adoptopenjdk1.8 dependency 추가 version 1.4.197을 사용한다. 최근 버전에서는 SpringBoot를 실행하면서 보안상의 이유로 database를 생성하지 못하도록 막아놓아서, 먼저 DB를 생성하고 실행해야하는 번거로움이 있다. 어차피 실제로 서비스할때는 h2 DB는 테스트용으로 사용할 예정이므로, 1.4.197 버전 (예전 버전)을 사용한다. ... com.h2database h2 1.4.197 runtime ... application.yaml 설정 application.properties로 해도 상관없으나, 본 글에서는 yaml 파일로 설정 spring: h2: console: enabled: true datasource: pla..

article thumbnail
플러터(flutter) - Row 세로 정렬 방법 (CrossAxisAlignment)
Mobile/Flutter 2021. 1. 3. 19:37

Row 위젯에서는 crossAxisAlignment 인자값을 이용하여 세로 방향으로 정렬할 수 있다. // 예시 Row( crossAxisAlignment: CrossAxisAlignment.stretch, ... ); CrossAxisAlignment.start child 위젯들을 상단에 위치시킨다. import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: "Row 위젯 예시", home: Example(), ); } } class E..

article thumbnail
플러터(flutter) - Row 가로 정렬 방법 (MainAxisAlignment)
Mobile/Flutter 2021. 1. 3. 19:22

Row 위젯에서 가로 정렬을 할 때는 mainAxisAlignment 인자를 이용한다. // 예시 Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, ... ); MainAxisAlignment.start child 위젯을 왼쪽에 붙게한다. import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: "Row 위젯 예시", home: Example(), ); } } class Example e..

article thumbnail
플러터(flutter) - Column 가로 정렬 방법 (CrossAxisAlignment)
Mobile/Flutter 2021. 1. 3. 19:00

Column 위젯을 가로로 정렬할때는 crossAxisAlignment 속성을 이용한다. CrossAxisAlignment.start start는 default 값으로 왼쪽에 붙게 한다. import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: "Column CrossAxisAlignment 예제", home: Example(), ); } } class Example extends StatelessWidget { @override Wid..

article thumbnail
플러터(flutter) - Column 세로 정렬 방법 (MainAxisAlignment)
Mobile/Flutter 2021. 1. 2. 23:20

MainAxisAlignment 속성을 이용하여 Column의 child 위젯을 정렬할 수 있다. 웹 개발을 해본 사람은 쉽게 이해할 수 있다. 기본 코드 import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp(title: "Column 위젯 정렬 예시", home: ColumnExample()); } } class ColumnExample extends StatelessWidget { @override Widget build(BuildContext..

article thumbnail
플러터(flutter) - Container와 SizedBox의 차이
Mobile/Flutter 2021. 1. 2. 22:49

Container와 SizedBox 위젯은 둘 다 width와 height를 가진다. 그래서 너비와 높이를 설정할 수 있다. 하지만 차이점이 존재한다. Container Container의 위젯은 width와 height를 넣지 않으면, 최대 크기로 확장해준다. import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: "Container와 SizedBox 차이", home: Example(), ); } } class Example ext..

article thumbnail
플러터(flutter) - 기본 레이아웃 (Column, Row, Container)
Mobile/Flutter 2021. 1. 2. 22:28

Container 컨테이너는 width와 height 속성이 있어서 크기를 조절할 수 있다. import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: "레이아웃 익히기", home: LayoutExample(), ); } } class LayoutExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Cont..

article thumbnail
Flutter 설치 및 환경 구축 (MacOSX)
Mobile/Flutter 2020. 12. 23. 15:41

Android Studio 설치 하위 페이지에서 Android Studio 설치 developer.android.com/studio?hl=ko

article thumbnail
React Native, Android 개발을 위한 설치 및 환경 구축 (Mac OSX)
Mobile/React Native 2020. 12. 22. 22:18

React Native 공식 페이지에서 권장하는 방법대로 작성했다. Node & Watchman 설치 React Native 개발에 필요한 node와 Watchman을 Homebrew를 이용하여 설치한다. $ brew install node $ brew install watchman watchman은 코드에 변화가 있는지 상태를 확인하는 도구입니다 JDK 8 설치 Android 개발을 위해 JDK를 설치한다. 설치방법은 동일하게 Homebrew를 사용 $ brew install --cask adoptopenjdk/openjdk/adoptopenjdk8 Android Studio 설치 아래 링크에서 안드로이드 스튜디오를 설치한다. developer.android.com/studio

article thumbnail
React Application을 Docker 빌드하고 배포하기 (MacOSX)
Frontend/React 2020. 12. 22. 13:05

사전 준비 본 글에서는 Homebrew를 이용하여 node, yarn, docker를 설치한다. node.js 설치 $ brew install node yarn 설치 $ brew install yarn docker 설치 homebrew 최신버전에서는 brew cask install 대신에 brew --cask install 을 사용한다. $ brew --cask install docker React 프로젝트 생성 # create-react-app을 이용하여 리액트 프로젝트 생성할 예정 $ yarn add global create-react-app 프로젝트 생성 $ yarn create react-app test-app 만들어진 app을 실행시켜 본다. $ cd test-app $ yarn start (저..

article thumbnail
Mac OSX - 확인되지 않은 개발자가 배포한 Mac 앱 열기
DevOps/MacOSX 2020. 12. 21. 19:34

맥에서 확인되지 않은 개발자가 만든 Mac 앱을 열기 웹 크롤링을 만드려고 하니, chromedriver를 열 수 없어서 구글링하여 열 수 있는 방법을 찾아봤다. Mac에서 신뢰성이 낮은 프로그램을 실행 할 수 없도록 막아뒀는데, 아래 명령어를 수행하면 해당 파일을 열 수 있게 할 수 있다. xattr -d com.apple.quarantine xattr -d com.apple.quarantine chromedriver 명령어 수행 후 안열리던 드라이버가 이제는 열린다.

article thumbnail
Spring Security의 기본 계정 아이디와 비밀번호
Backend/Spring Boot 2020. 12. 15. 22:18

Spring Security를 추가하고 아무런 설정을 안하면, Security가 모든 요청을 가로챈 다음 /login 경로로 리다이렉트한다. 그래서, 아래와 같은 화면이 나온다. Spring Security의 기본 계정 정보 테스트를 위해서 로그인을 해보고 싶다면, 아래계정으로 접속한다. username: user password: (콘솔 창에 나온 비밀번호, 예시: 7aa1e310-2a4b-46a7-85fb-7883d18b72ef)