Dev 133

[SpringBoot] 스프링 부트 시큐리티

1 스프링 부트 시큐리티 퀵 스타트 인증(Authentication)을 통해 사용자를 식별하고 인가(Authorization)를 통해 시스템 자원에 대한 접근을 통제한다. 직원이 특정 자원에 접근할 때 권한이 있는지 확인하는 과정을 인가라고 생각하면 된다. 스프링 시큐리티가 인증과 인가를 어떻게 처리하는지 확인해보자. [스프링 부트 시큐리티 적용하기] 스프링 시큐리티 개념 인증과 인가 관련 코드를 모든 클래스의 메소드마다 적용하면 반복적인 코드들이 여러 곳에 등장하게 된다. 유지보수 과정에서 시큐리티 관련 코드를 수정하려고 할 떄 또다시 반복적인 작업을 할 수밖에 없으므로 이러한 문제 해결을 위해 스프링 시큐리티가 만들어졌다. 시큐리티를 적용하지 않았을 때 프로젝트 생성 사용 모듈 : DevTools, ..

Dev/SpringBoot 2020.01.02

[Springboot] 스프링부트 화면 개발

1 JSP 화면 개발 스프링 부트는 템플릿 엔진을 이용한 화면처리를 지원. 지원되는 템플릿 엔진 : 타임리프, Freemarker, Mustache, Grooby Templates 템플릿 엔진 이용시 데이터와 완벽하게 분리된 화면을 개발 가능. 순수하게 HTML 만을 이용한 화면 개발이 가능하고 운영 과정에서 쉽게 화면을 변경 가능. [웹 애플리케이션 화면 개발하기] 실습 프로젝트 생성 및 환경설정 프로젝트 생성시 사용 모듈 추가: Web, Lombok JPA, H2, DevTool DevTool은 애플리케이션을 재실행하지 않아도 수정된 소스를 자동으로 반영. Pom.xml : jstl, org.apache.tomct.embed - jsp를 컴파일 할때 필요한 라이브러리(tomcat-embed-jaspe..

Dev/SpringBoot 2020.01.01

[Git] push error - unpack failed: index-pack abnormal exit

github로 push가 안되는 문제 발생. cmd 와 sts 플러그인 모두 push 반영이 안되었다. 오류 메세지 $ git push Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Delta compression using up to 4 threads Compressing objects: 100% (5/5), done. Writing objects: 100% (6/6), 700 bytes | 77.00 KiB/s, done. Total 6 (delta 3), reused 0 (delta 0) remote: error: object 커밋해쉬번호: nullSha1: contains entries pointing to null sh..

Dev/Git 2019.12.31

[SpringBoot] 스프링 데이터 JPA

[스프링 데이터 JPA 퀵 스타트] 스프링 부트는 JPA에 필요한 라이브러리들과 복잡한 XML 설정을 자동으로 처리하기 위해 JPA 스타터를 제공한다. 1. 스프링 데이터 JPA 사용하기 프로젝트를 생성하여 스프링 데이터 JPA를 사용해보자 *JPA 기본설정 application.properties 파일에 데이터 소스, JPA, 로깅 설정을 반영한다. # DatsSource Setting spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.username=sa spring.datasource.password= # JPA Setting spri..

Dev/SpringBoot 2019.12.28

[SpringBoot] JPA 퀵 스타트

스프링과 JPA 데이터베이스에 연동되는 기술 : 전통적인 JDBC, 스프링 DAO, Mybatis, Hibernate 등 굉장히 다양 ORM : 애플리케이션에서 사용하는 SQL 까지도 프레임워크에서 제공 ORM들을 보다 쉽게 사용할 수 있도록 표준화시킨 것이 JPA(Java Persistence API) 스프링 데이터 JPA : 스프링 부트에서 JPA를 쉽게 사용할 수 있도록 지원하는 모듈 [JPA 개념 이해하기] Mybatis : SQL을 개발자가 직접 XML 파일에 등록하여 사용 Hibernate(와 같은 ORM) : 프레임워크에서 SQL을 생성하기 때문에 개발자가 신경 쓸 필요 없음 - SQL을 직접 다루는 기술 JDBC를 이용하여 DB연동 처리 시 > 드라이버 클래스 로딩 > 커넥션 연결 > st..

Dev/SpringBoot 2019.12.23

[SpringBoot] 테스트와 로깅

[스프링부트 테스트] 테스트 코드 : 유지보수 과정에서 재사용되어 시스템의 안정성을 보장하는 중요한 장치 대부분의 프로젝트는 JUnit을 기반으로 일관성 있는 단위 테스트 진행 단위 테스트 : 자신이 작성한 클래스에 대한 테스트. 테스트 단계 중에서 가장 기본 스프링부트가 제공하는 테스트 환경과 테스트 방법을 알아보자 [스프링 부트에서 테스트하기] 프로젝트 의존성에 테스트 스타터가 등록되어 있으므로 여러 라이브러리들도 자동적으로 추가된다. 웹 애플리케이션에서의 테스트는 일반적인 자바 애플리케이션과 달리 테스트 과정이 복잡하고 자동을 처리해야 할 일도 많다. @RunWith(SpringRunner.class) Junit에서 기본적으로 제공하는 러너가 아닌 스프링 러너를 사용하기 위해서 추가 @SpringB..

Dev/SpringBoot 2019.12.18

[java] CSV 파싱하기

CSV PARSER 이용해서 확장자가. csv인 파일을 파싱해서 처리해야 하는 일이 생겼다. 그런데 테스트 진행중에 CSV 파싱 오류가 계속해서 발생했다. 구글링 해본 결과 윈도우 OS에서 파일이 편집되었을 경우 인코딩 방식을 'ISO-8859-1'로 지정해야 한다는 것을 알게 되었다! 자바 코드 /** * * getParsingCsvData * */ private List getParsingCsvData(File file){ List csvList = new ArrayList(); // try with resources try (BufferedReader reader = Files.newBufferedReader(file.toPath(), Charset.forName("ISO-8859-1"))) { /..

Dev/Java 2019.12.13

[SpringBoot] 스프링부트 자동설정

스프링 부트 스타터 스프링 부트를 구성하는 핵심요소 3가지 : 스타터, 자동설정, 액추에이터 스타터(starter) : 스프링이 제공하는 특정 모듈을 사용할 수 있도록 관련된 라이브러리 의존성을 해결 자동설정(AutoConfiguration) : 스타터를 통해 추가한 모듈을 사용할 수 있도록 관련된 빈 설정을 자동으로 처리 액추에이터(Actuator) : 스프링 부트로 개발된 시스템을 모니터링할 수 있는 다양한 기능 제공 [스타터로 의존성 관리] 스타터는 필요한 라이브러리들을 관련된 것끼리 묶어서 마치 패키지처럼 제공한다. 프로젝트에서 사용하고 싶은 모듈이 있으면 그 모듈에 해당하는 스타터만 의존성으로 추가하면 된다. 1. 프로젝트에 의존성 추가하기 - pom.xml 파일에 설정 추가 2. 스타터로 의존..

Dev/SpringBoot 2019.12.13

[SpringBoot] 스프링부트 시작하기

- 스프링 부트 : 스프링 프레임워크를 사용 가능한 상태로 만들어주는 도구. 스프링 프레임워크의 서브 프로젝트로 만들어졌다. - 프레임워크 : 애플리케이션의 아키텍처에 해당하는 골격 코드이다. - 메이븐(Maven)/그레이들(Gradle) : 라이브러리 관리와 빌드 자동화 도구이다. 스프링부트 프로젝트의 구조 1. src/main/java : 일반적인 자바 소스 등록 2. src/main/resources : 자바 소스가 아닌 xml이나 프로퍼티 파일을 등록 - 스프링 부트의 경우 기존 메이븐과 조금 다르다. 펼칠 경우 xml파일은 없고, 웹 애플리케이션과 관련된 static과 templates 폴더가 존재한다. - statc : html과 같은 정적인 웹 리소스 - templates : 타임리프 같은 ..

Dev/SpringBoot 2019.12.11

[Spring] Annotation 간략 정리

프로젝트를 진행하면서 스프링에서 다양한 어노테이션이 존재함을 알게 되었다! 간략하게 파악하는 차원에서 틈틈이 정리를 해보았다. 여러 책과 블로그들을 참고하였다. 1. @RestController ○ @Controller + @Responsebody ○ Return 되는 값은 View page를 통해 출력되는 게 아니라 Http Responsebody에 직접 쓰인다. ○ 즉, 객체(VO, DTO)를 반환하면 객체는 application/json 형식의 Responsebody에 직접 작성. ○ 클라이언트에 전달되는 데이터는 대부분 문자열이거나 VO나 컬렉션 형태의 자바 객체 ○ 자바 객체로 Response 전달 시, 자동으로 JSON으로 변환하여 처리함. 2. @Autowired ○ Setter 또는 생정자..

Dev/Spring 2019.12.11
반응형