루트 유저⦁ 생성한 계정의 모든 권한을 자동으로 가지고 있음⦁ 생성시 만든 이메일 주소로 로그인⦁ 탈취당했을 때 복구가 매우 힘듬 : 사용을 자제하고 MFA 설정 필요⦁ 루트 유저는 관리용으로만 이용 : 계정 설정 변경, 빌링 등⦁ AWS API 호출 불가 IAM 유저 ⦁ IAM(Identify and Access Management) 을 통해 생성한 유저 ⦁ 만들 때 주어진 아이디로 로그인 ⦁ 기본 권한 없음 ; 따로 권한을 부여해야 함 ⦁ 꼭 사람이 아닌 어플리케이션 등의 가상의 주체를 대표할 수도 있음 ⦁ AWS API 호출 가능 ⦁ AWS의 관리를 제외한 모든 작업은 관리용 IAM User 를 만들어 사용 ⦁ 권한 부여시 루트 유저와 같이 모든 권한을 가질 수 있지만 빌링 관련 권..
SpringBoot/스프링부트 스터디
build.gradle implementation 'org.springframework.boot:spring-boot-starter-data-jpa'runtimeOnly 'com.mysql:mysql-connector-j' application.propertiesspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://[ip주소]:3306/[데이터베이스명]?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoulspring.datasource.username=사용자명spring.datasource.password=비밀번호spring.jpa.show-s..
JPA 의 Specification 인터페이스 사용(Specification 은 쿼리를 보다 정교하게 작성할 수 있도록 도와주는 JPA 도구) QuestionService 에 다음 코드 추가 QuestionRepository 에 다음 코드 추가 QuestionService 에서 getList 메소드 수정 QuestionController 에서도 getList 메소드의 입력 항목이 변경되었으므로 수정
1. 회원가입 기능 구현회원 가입 기능을 구현하기 위해서는 회원 정보에 관한 데이터를 저장하고 관리하는 엔티티와 리포지터리, 서비스, 폼 등이 필요하다. 서비스에서 비밀번호는 보안을 위해 BCryptPasswordEncoder 클래스를 사용하여 저장했는데 객체를 직접 new 로 생성하는 방식보다는 PasswordEncoder 객체를 빈으로 등록해서 사용하는 것이 좋다고 한다.(만약 암호화 방식을 변경하면 BCryptPasswordEncoder 를 사용한 모든 프로그램에서 수정해야하기 때문에) 따라서 다음과 같이 SecurityConfig.java 파일에 PasswordEncoder 객체를 빈으로 등록하고 다시 서비스에서 new 로 객체를 생성했던 부분을 삭제하고 형광색부분을 추가해주었다. ..
1. 게시물에 번호 지정하기 ▼게시물 번호 공식 게시물 번호 = 전체 게시물 개수 - (현재 페이지 * 페이지당 게시물 개수) - 나열 인덱스 만약 게시물이 12개이고 한 페이지에 보여지는 게시물이 10개면1페이지에는 12, 11, 10, 9, 8, 7, 6, 5, 4, 3 번의 게시물이 보여야하고0페이지에는 2, 1 번의 게시물이 보여야 한다. 2. 답변 개수 표시하기 다음과 같이 question_list 에 코드를 추가하면 게시물 옆에 답변의 개수가 출력된다. 3. 스프링 시큐리티 설정하기 스프링 시큐리티란 회원가입과 로그인을 도와주는 프레임워크이다. 스프링 시큐리티를 사용하기 위해 다음과 같이 build.gradle 파일을 수정한다.형광색 부분의 코드를 삽입하고 refresh 한 다음 다시..
1. 공통 템플릿 만들기 오류 메시지를 출력하는 HTML 코드는 질문 등록과 답변 등록 페이지에서 모두 반복해서 사용하는데이 때 중복되는 코드를 하나의 공통 템플릿으로 사용해보려고 한다. ▼질문등록 페이지에서 수정 ▼답변등록 페이지에서 수정 2. 내비게이션 바 추가하기내비게이션 바는 화면 위쪽에 고정되어 있는 부트스트랩의 컴포넌트 중 하나이다내비게이션 바는 모든 페이지에서 공통적으로 보여야 하므로 다음과 같이 layout.html 템플릿에 내용을 추가하였다. 내용을 추가하고 다시 실행한 결과 아래 그림과 같이 내비게이션 바가 생성된 것을 알 수 있다. 하지만 브라우저의 가로 사이즈를 줄였을 때 아래 그림과 같이 햄버거 메뉴 버튼이 생성되고 로그인 버튼이 사라진 것을 알 수 있는데이 ..
▶ 먼저 CRUD 란?데이터 처리 기능인 Create Read Update Delete 를 묶어서 일컫는 말 ▶ 가장 기초적인 게시판을 만드는데 있어서 필요한 기능들질문 생성질문 검색질문 수정질문 삭제댓글 생성댓글 수정댓글 삭제... 여기서 create 의 역할을 지닌 질문 생성, 댓글 생성 기능을 구현해볼 것이다.과정은 다음과 같다.1. 질문엔티티 만들기 -Question.java2. 답변엔티티 만들기 -Answer.java3. h2 데이터베이스에서 질문, 답변 테이블 생성됐는지 확인하기4. 리포지터리 생성하기 -QuestionRepository.java -AnswerRepository.java5. JUnit 으로 리포지터리가 정상적으로 동작하는지 확인하기6. 질문 작성 기능 만들기 ..