본문 바로가기

분류 전체보기

(146)
Dart- 변수 정리 Nullable Variables Dart의 모든 변수는 기본적으로 nullable하지 않다. 만일 해당 변수에 null을 넣을 수 있도록 설정하고 싶다면 타입 뒤에 ?를 붙이면 된다. nullable 한 변수는 사용할 때마다 null 여부를 체크해야한다. if문을 사용해서 null 여부를 체크할 수도 있고, "변수명?"를 이용해서 체크도 가능하다. Final Variables final 키워드를 통해서 값을 재할당 하지 못하는 변수를 선언을 할 수 있다. Late variables late 키워드를 사용하면 final 변수가 초기값 없이 변수를 선언 할 수 있도록 해준다. 이는 클래스의 final 필드를 나중에 초기화 하는 경우에 사용한다. 즉, laste 키워드는 해당 변수에 어떠한 값이 올 지 모른..
@SpringBoot- @NotNull VS @Column(nullable=false) 공통점 우선 @Column(nullable = false)을 사용할 때와 마찬가지로 @NotNull 역시 테이블 생성시 NOT NULL DDL이 입력된다. 이는 Hibernate가 @NotNull 어노테이션 역시 해석할 수 있기 때문이다. 차이점 본격적인 차이로, @Column(nullable = false)는 JPA가 만든 엔티티의 필드 값이 null로 채워진 상태에서도 정상적으로 수행되다가 데이터베이스 쪽으로 SQL 쿼리가 도착한 순간에 테이블 컬럼의 NOT NULL 옵션에 의해 예외가 발생된다. 그러나 @NotNull 어노테이션은 데이터베이스 쪽으로 SQL 쿼리가 보내지기 전에, 정확히는 JPA가 만든 엔티티의 필드 값이 null로 채워지는 순간에 예외가 던져진다. 즉 @NotNull 어노테이션이 ..
Docker -컨테이너와 이미지 도커 이미지 컨테이너는 프로그램을 실행하는데 필요한 설정이나 종속성을 갖고있다. 프로그램을 실행하는데 필요한 모든 것을 포함한 패키지이다. 컨테이너에는 실행 파일인 파일 스냅샷과 시작시 실행될 명령어가 내장되어있다. 이미지를 통해서 컨테이너를 만들고 이미지의 파일 스냅샷은 컨테이너의 하드디스크에 설치되고, 실행될 명령어는 컨테이너에서 실행된다. 도커 컨테이너 컨테이너 이미지는 런타임에 컨테이너가 되고 , 도커 컨테이너의 경우 도커 엔진에서 실행될 때 이미지가 컨테이너가 된다. 컨테이너는 소프트웨어가 주변 환경에 관계없이 균일한 작동을 보장하는 기술이다. 도커 컨테이너는 도커 이미지의 인스턴스이며, 프로그램을 실행한다. 결론 도커 이미지는 프로그램을 실행하는데 필요한 설정이나 종속성을 갖고 있으며, 도커 ..
HTTP- Rest Api Rest Api란? 인터넷과 웹을 통해서 나의 컴퓨터를 제어할 때 어떻게 해야지 좋은 api를 설계할지를 고민한 것이 Rest Api의 결과물이라고 볼 수 있다. Rest Api는 특정한 기술이 아닌 HTTP를 이용하여 Api를 설계할 때 위한 올바르게 설계하기 위한 모범적인 방법론이다. URI 설정 Rest Api에서 URI를 설정할 때는, 동사를 사용하지 않는다. 예를 들어 "/createMovie", "/getMovie/inception"이라는 uri가 있을때 이를 Restful하게 설계하기 위해선 다음과 같이 변경한다. "/createMovie" -> "/movie" "/getMovie/inception" -> "/movies/inception" 컬렉션의 경우 movies와 같이 뒤에 s를 붙여 ..
EC2- 설정 및 리눅스 명령어 정리 인스턴스로 파일 전송하기 EC2 인스턴스에서 파일을 실행하기 위해선 해당 인스턴스로 파일을 전송해줘야 한다. 예를 들어 내가 demo-0.0.1-SNAPSHOT.jar를 전송하기 위한 커맨드는 다음과 같다. scp -i [keypair 절대 경로] [파일절대경로] ubuntu@[public ipv4]:[파일받을경로] scp -i keypair.pem demo-0.0.1-SNAPSHOT.jar ubuntu@ec2-1-1-1-1.ap-northeast-2.compute.amazonaws.com:~/ 키페어: keypair.pem 전송파일: demo-0.0.1-SNAPSHOT.jar public ipv4: ec2-1-1-1-1.ap-northeast-2.compute.amazonaws.com 파일 받을 경로:..
EC2- ssh 연결 ssh로 인스턴스 연결하기. aws에서 키페어를 발급해야지 ssh 연결이 가능하므로 꼭 키페어를 발급해두자. ssh -i "키페어 절대경로" ubuntu@[public IPv4 DNS] 접속하려는 인스턴스의 public ipv4 dns는 인스턴스를 클릭하면 세부정보에서 확인이 가능하다. 예를 들어 keypair.pem이라는 키페어가 Desktop이라는 경로에 저장되어 있다고 하자. 또한 내가 접속하려는 인스턴스의 publiv IPv4 DNS는 "ec2-1-1-1-1.ap-northeast-2.compute.amazonaws.com"이라고하자. 이 경우 내가 해당 인스턴스에 접속하기 위해서 터미널 창에 다음과 같이 입력한다. ssh -i "~/Desktop/keypair.pem" ubuntu@ec2-1-1..
Mysql- 권한 설정 유저 생성 - localhost (내부 접근만 허용) create user '{id}'@'localhost' identified by '{pw}'; // localhost를 생성한다. 내부 ip만 접속 가능 localhost로 유저를 생성하는 경우 내부 ip로만 접속이 가능하다. - % (외부 접근 허용) create user '{id}'@'%' identified by '{pw}' // 외부 ip에서도 접근이 가능 외부에서도 접속이 가능하게 하려면 @뒤를 '%'로 바꿔주자. 권한 설정 grant {부여할 권한들} privileges {db명}.{테이블명} to '{id}'@'{host}' identified by '{pw}' [with grant option]; flush privileges; // 권..
SpringSecurity- SecurityConfig 설정 @EnableWebSecurity @EnableMethodSecurity @Configuration @RequiredArgsConstructor public class SecurityConfig { @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring().requestMatchers("/예외처리하고 싶은 url", "/예외처리하고 싶은 url"); } @Bean protected SecurityFilterChain webSecurityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests() .requestMatch..