목록프레임워크 (11)
혜미의 개발 일지

인텔리 제이에서 스프링부트 프로젝트 생성을 한다. 여기서 나는 스프링부트에서 지원해주는 내장 서버를 사용하기위해 스프링부트 임베디드 서버를 설정했다. 그리고 롬복도 기본으로 설정했다.(현업에선 슬프게도 한번도 사용해본적없지만 이왕부트를 사용하는거 사용해보기로 했다.) 기본으로 데브툴도 선택해주고.. 왜인지 자바는 17버전 이상이 되지않으면 에러(17이상으로 쓰라는 에러가 난다.)가 나서 17버전으로 선택하고 설정하니 정상작동 되었다. 저기 화실표 표시가 나타나면 정상적으로 프로젝트 자바 빌드가 준비된것이다. 클릭하여 런 시켜준다. 프로젝트를 생성하고나면 application.properties 이 비어있는 것을 알 수 있는데, 이때문에 프로젝트를 실행시키면 로그에 이런 에러가 표시 되는 것을 알 수 있다..

전자정부 표준 프레임워크는 스프링 기반으로 만든 프레임워크이다. 그러니까 스프링 레거시가 부모개념이고 그 아래 전자정부표준프레임워크와 스프링 부트가 각각 탄생되었다. 하지만 전자정부표준프레임워크를 사용하는 곳은 국가 지원사업이 아닌이상 거의 쓰지 않고, 근래엔 기존 스프링이 무거우니 스프링 부트를 많이 사용하고 있다. 하지만 내가 처음 25년차의 현직 개발자님께 개발을 배웠을 때 전해 듣기론, 스프링이라는 뼈대의 흐름과 구조를 제대로 파악하기 위해서는 스프링 레거시를 먼저 배우고 부트를 배워야 그 원리를 잘 이해 할 수 있다고 들었었다. 그리하여 나의 경우 스프링 레거시를 먼저 접하게 되었고, 그렇게 다음 현장에서는 전자정부표준 프레임워크를 접하게 되었다. 나의 설명은 이쯤에서 마무리하고 전자정부 표준 ..

프로젝트에서 pom.xml 에 보통 라이브러리나 환경 설정을 하는데 나는 이미 환경설정이 어느정도 완성이 되어있는 전자정부프레임워크의 프로젝트에서 pom.xml의 정확한 역할을 모른채 추가 작성하며 개발을 진행해왔었던 것 같다. 현재 나는 전자정부표준프레임워크를 쓰고 있으니 신규 프로젝트를 생성하면 최소한의 프로젝트 구성은 무엇인지 왜 pom.xml에 선언하며 그 태그의 종류와 역할이 무엇인지 알아보자. 1. 개념 메이븐 이란? Maven이란 자바용 프로젝트 관리 도구이다. Maven은 Apache사에서 만든 빌드툴(build tool)이다. pom.xml파일을 통해 정형화된 빌드 시스템으로 프로젝트 관리를 해준다. 프로젝트의 전체적인 라이프 사이클을 관리한다. https://velog.io/@chang..
1. BCryptPasswordEncoder란? 스프링 시큐리티(Spring Seurity) 프레임워크에서 제공하는 클래스 중 하나로 비밀번호를 암호화하는 데 사용할 수 있는 메서드를 가진 클래스입니다 스프링 시큐리티(Spring Security)란 스프링 시큐리티(Spring Security)란 자바 서버 개발을 위해 필요로 한 인증, 권한 부여 및 기타 보안 기능을 제공하는 프레임워크(클래스와 인터페이스 모임)입니다. - BCryptPasswordEncoder는 BCrypt 해싱 함수(BCrypt hashing function)를 사용해서 비밀번호를 인코딩해주는 메서드와 사용자의 의해 제출된 비밀번호와 저장소에 저장되어 있는 비밀번호의 일치 여부를 확인해주는 메서드를 제공합니다. - PasswordE..

JWT 란 JSON WEB TOKEN 의 약자이다. 간단하게 토큰을 만드는 방식이라고 보면 된다. 그렇다면 먼저, 토큰에 대하여 그리고 세션, 쿠키, 토큰을 각각 이해해보자. 큰 차이점으로는 세선은 서버에 저장이 되는 거라 서버 메모리에 과부화가 올 수 있다는 것이고 세션은 서버에 족송되는 것이기 때문에 다른 서버라면 로그인을 유지할 수 없다. 하지만 토큰과 쿠키는 브라우저에 저장될 수 있다는 점이라는 거다. 그래서 쿠키와 토큰을 이용해서 서버의 과부화 없이 로그인 유지를 할 수 있도록 하였다. 쿠키는 만료기한이 있지만 내가 브라우저를 닫아도 자바나 자바스크립트로 만료시간을 설정해서 그 기한 동안 브라우저에 남아있도록 할 수 있다. --> 추가 참고 : 로컬 스토리지 와 세션스토리지 그리고 쿠기( 작성예..

mybais와 ibatis는 둘다 스프링에서 sql(DB)를 연결해주는 일종의 프레임워크이다. 우리가 서비스를 사용해서 다오랑 impl을 사용하는 이유는 객체지향과 트랜잭션을 이용해서 에러시 원인을 더 빨리 파악하기 위함이라고 들었다. 그리고 mybais와 ibatis와 같은 프레임워크를 사용하는 이유는 DB를 직접적으로 연결하는 것 즉, jdbc로 직접 처리하는 방법보다 코드의 설정(Connection) 부분을 줄이고 실제 sql문에 연결함으로서 빠른 개발이 가능하도록 사용한다고 알고 있다. 내가 여기 입사할 당시에는 spring프로젝트에 mvc패턴과 ibatis를 사용해왔는데 몇개월 후 ibatis의 단점을 보안하기 위해 mybatis로 바꾸었다. 처음에는 그 둘의 차이를 잘 모른채 구조를 바꿨는데 ..

[설치하게 된 계기] 나는 스프링 레거시나 전자정부프레임워크만 해왔어서 .. 부트를 거의 사용하지 않았는데, 요즘 부트가 많이 쓰인다하여 공부중에 있다. 부트를 사용하다보면 어노테이션으로 많은 활용을 한다고 들었다. 그래서 롬복이 필수 인것 같았다. 스프링 sts 4버전 설치 후 Lombok도 같이 설치하였다. 롬복이란, 자바의 어노테이션 라이브러리와 같은 개념인 것 같다. https://projectlombok.org/download Download projectlombok.org 여기서 다운로드 해서 설치해준다. [설치 과정] 그 후 설치 파일을 내가 여는 이클립스 파일에 두고 관리자 권한으로 cmd를 실행시켜 lombok이 있는 위치에서 lombok을 실행한다. 실행 명령어는 java -jar lo..
내가 보고 따라해서 구현한 블로그 [펌]파일 업로드 & 다운로드 (1/3) 웹에서 첨부파일은 상당히 문제가 많이 일어나는 부분이기도 합니다. 실제로 프로젝트중에서 첨부파일때문에 오픈이 지연되는 경우도 봤었구요. 제가 이번글에서 쓸 내용은 첨부파일 업&다운 enterkey.tistory.com 이를 통해 참고하여 구현하였다. (사실 이 밖에도 몇개 있었는데 다 기억이 나지 않는다..) 파일은 모듈로 공용으로 쓸 수 있게 따로 빼두었다. 주석은 내가 해석하며 작성해 놓았던건데 그대로 가져다써도 각 프로젝트 환경은 다 다르기에 참고만 해주세요. import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File;..