본문 바로가기

반응형

Programming

(38)
[SpringBoot] 간단한 게시판 만들기 #3 - domain(Entity) 구현 패키지명은 보통 domain 혹은 entity로 표기하며, 내부 Class or Enum 파일들은 DB 처리용으로 DB Table과 Mapping된다. Entity 객체는 보통 DTO(Data Transfer Object)와 분리하게 된다. domain 패키지에는 Board, Time, Role, User 4개의 파일이 존재하게 된다. Board : 게시판 글 정보들을 모아놓은 Board 테이블 Time : 데이터 조작 시 자동으로 날짜를 수정해주는 JPA의 Auditing 기능을 사용한다. 이 Time Entity를 만들어 놓고 다른 Entity(Board, ..)로부터 상속받아서 사용하게 된다. Role : Spring Security 중 사용자의 권한을 Enum 클래스로 만들어 관리한다. (Enum..
[SpringBoot] 간단한 게시판 만들기 #2 - Controller 구현 Controller는 View로부터 오는 API 요청들을 어떻게 처리할 것인지 정의하는 역할을 한다. => /board/list란 경로로 GET 요청이 왔을 때 어디로 보내고, /board/post란 경로로 GET 요청이 올 때 어디로 보내고, POST 요청이 오면 xxService로부터 Data를 받아와서 view로 Attribute를 전달하는 등, /xx/xxx 경로로 요청이 올 때 PathVariables를 받아올지 등 정의를 수행한다. - Controller는 @Controller 애노테이션을 붙여서 해당 Class가 Controller임을 알려줘야 한다. shop.pingping2.board.controller.BaseController.java / 경로로 오는 요청을 처리하는 Controlle..
[SpringBoot] 간단한 게시판 만들기 #1 - 세팅 주의 스프링부트 맛보기 위해 정리한 글이므로 본 글은 참고용으로만 봐주시기 바랍니다. Ref https://victorydntmd.tistory.com/325 https://devlog-wjdrbs96.tistory.com/209 Spring Initializr을 통해 Project를 생성하였다. Spring Boot DevTools Spring Web Thymeleaf Spring Data JPA Lombok MySQL Driver ++ 추후 Google OAuth2 로그인을 위한 Spring Security도 Dependency를 추가 설정해주었다. 해당 부분은 build.gradl의 dependencies에 추가한 뒤 재빌드를 해주면 된다. 1. 빌드 'Build -> Build Project'를 ..
[SpringBoot] 개념, 구조, 동작 방식 Sprint Boot는 Java를 기반으로 한 Web Application FrameWork이다. SprintBoot가 나오기 전 Spring 프레임워크를 사용하였지만, 초기 환경 설정에 시간이 많이 할애가 된다는 문제점이 존재하였다. 이로 인해 나온 것이 SpringBoot이며, 특징을 알아보자. 1. Maven이든 Gradle이든 Dependency에 따라 셋팅에 필요한 라이브러리들을 미리 정의해 둔 원격 저장소에서 알아서 다운로드 받아와 세팅해준다. 2. 버전 관리를 자동적으로 해주기 때문에 버전에 맞지 않아 발생할 수 있는 오류를 사전에 예방할 수 있다는 장점이 존재한다. 3. 내장 톰캣이 존재하여 별도의 Tomcat을 서버 내에 설치하지 않아도 된다. 4. servlet-context, root..
[Javascript] 반복문 정리 반복문에는 다음의 종류가 있다. for for in for of forEach while 문 while do while Object 객체 메서드 Object.keys Object.values Object.entries Array.prototype 메서드 배열.forEach 배열.map 배열.filter // for for (let i = 0; i < 5; i++){ console.log(i * 2); } 0 2 4 6 8 // for in : 객체의 프로퍼티 키 열거 전용 // for (const key in 객체) {반복 수행 코드 ...} // 해당 객체가 상속받는 Prototype 체인 상의 모든 Property 키를 열거한다. (Enumerable이 False인 경우는 제외) const obj =..
[Python] sort() 함수 알아보기 sort() 함수는 Python의 내장 함수를 사용하여 정렬하는 방법이다. 사용 시 주의 사항 1. sort() 함수는 sorted() 함수와 다르게 Return Value가 존재하지 않음 2. Key 함수를 사용하면 List 내부의 Element에서 특정 조건에 따라 정렬할 수 있음 Sort 함수란? : 리스트 내부에 있는 요소들을 정렬해주는 함수 (Default : 오름차순) 사용법 sort(*, key: Optional[Callable[[_T], Any]]=..., reverse: bool=...) -> None list.sort() list.sort(reverse=True) list.sort(key = lambda x : x['age'], reverse=True) ... 예시 리스트에 sort 함..
[Boto3] RDS의 Parameter Group 값을 CSV 추출 스크립트 RDS의 Parameter Groups에 어떤 Parameter들이 정의되어 있는지 CSV 파일로 추출해주는 스크립트입니다. - 기대 효과 1. CSV로 저장하여 확인하고 싶을 경우 2. RDS 버전을 MySQL 5.6 -> 5.7 등으로 업그레이드 하고자 할 때 Excel로 비교하고 싶을 경우 import boto3 import csv p_name = "default" r_name = "ap-northeast-2" param_group_name = "psql-param-group" session = boto3.session.Session(profile_name=p_name) client = session.client(service_name='rds', region_name=r_name) paginato..
[Python] Boto3로 Security Group rule 추가 (csv 파일 이용) 개요 SG 정책 추가를 관리형 웹 콘솔에서 보안 그룹을 적용할 경우 수십분이 걸리는 작업이다. CIDR 대역이 아닌 각 IP당 여러 Port를 요구하기 때문에 보안 그룹 규칙이 굉장히 번잡해진다. 보안 그룹 정책은 고객사를 따라서 해야 하기 때문에 요청대로 해줘야 하는데 굉장히 노가다성 작업이 심해서 파이썬 Boto3와 CSV 파일을 이용하여 수고를 덜면 어떨까라는 생각이 들었다. 과정은 다음과 같다. (Python 스크립트를 돌리기 이전에 웹 콘솔에 접속하여 Rule이 이미 허용은 되어 있는지, 라우트 테이블 정책은 어떻게 이루어져 있는지, Site to Site VPN Static Route 혹은 Transit Gateway Route Table에 라우팅이 설정되어 있는지 등을 사전에 확인 후 10 ..

반응형