TIL - 항해99 19일차(서버배포방법‼)

스브코·2021년 11월 20일
0
post-custom-banner

@RequiredArgsConstructor vs @ @AllArgsContructor

@RequiredArgsConstructor

이 어노테이션은 초기화 되지않은 final 필드나, @NonNull 이 붙은 필드에 대해 생성자를 생성해 줍니다. 주로 의존성 주입(Dependency Injection) 편의성을 위해서 사용되곤 합니다.

@AllArgsConstructor

모든 필드에 대한 생성자 생성.

Java optional[출처]

자바 optional이 만들어진 의도[출처]

Optional class의 목적은 null 참조 대신 Optional value로 표현되는 형식의 솔루 션 제공으로써, nullpointerException을 해결하기 위한 방책으로 등장했다.

Optional은 많은 사람들이 우리(자바 언어 설계자)에게 기대했던 범용적인 Maybe 타입과는 다르다. 라이브러리 메서드가 반환할 결과값이 ‘없음’을 명백하게 표현할 필요가 있는 곳에서 제한적으로 사용할 수 있는 메커니즘을 제공하는 것이 Optional을 만든 의도였다.

공식 문서 API Note

Optional is primarily intended for use as a method return type where there is a clear need to represent “no result,” and where using null is likely to cause errors. A variable whose type is Optional should never itself be null; it should always point to an Optional instance.

메서드가 반환할 결과값이 ‘없음’을 명백하게 표현할 필요가 있고, null을 반환하면 에러를 유발할 가능성이 높은 상황에서 메서드의 반환 타입으로 Optional을 사용하자는 것이 Optional을 만든 주된 목적이다. Optional 타입의 변수의 값은 절대 null이어서는 안 되며, 항상 Optional 인스턴스를 가리켜야 한다.

사용할 일이 있을때 출처 블로그에 들어가서 상황에 맞게 적용하면 편리할것 같다.

requestmapping, getmapping, postmapping

RequestMapping 은 클래스 레벨에서 사용.

이 annotation은 클래스와 메서드 수준에서 모두 사용할 수 있다.
메소드 에서는 @RequestMapping(method = RequestMethod.GET, path = "/getMethod") 어떤 호출인지를 명시 해준다.

GetMapping, PostMapping 은 메소드에만 적용.

HTTP GET 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation.
주소에 파라미터가 노출 됨.

bootstrap modal이 내 스프링 프로젝트에서 안됨...

구세주 블로그>_<: https://m.blog.naver.com/10hsb04/221672312196

<!-- Bootstrap js -->
	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
	
	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
	
	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
	<!-- /Bootstrap js -->

이렇게 순서대로 있어야지 순서가 바뀌면 안된다고 하네요.. 저렇게 바꾸니까 진짜 됫다...

스프링 @Bean 이란

제어의 역전(Inversion of Control)로 인해 객체 생성의 관리를 스프링에게 넘김으로 인해서, 이때 Spring에 의하여 생성되고 관리되는 자바 객체들을 Bean 이라고 한다.

더 자세히 알아보려고 찾아봤으나 아직 @Component와 @Bean 개념은 사용해 보질 않아서 정확히 어떻게 쓰는건지는 잘 모르겠다.

자바 스프링 배포 방법

  1. intellij에서 build 버튼 클릭

  2. 빌드된 파일은 이위치로 떨어짐

  1. 준비된 EC2 서버로 파일질라를 사용해 파일 이동 시키고

  2. openJDK 설치

    sudo apt-get update

    sudo apt-get install openjdk-8-jdk

    java -version

  3. 실행 시키기

    nohup java -jar Jar파일 &

  4. AWS 80, 8080 포트 열어주기

  • ECS 보안그룹에서 포트 허용

  • sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

  1. 서버 재실행
profile
익히는 속도가 까먹는 속도를 추월하는 그날까지...
post-custom-banner

0개의 댓글