전체 글 195

Mac에서 Python 관리 (2)

출처 : medium.com/python-every-day/python-development-on-macos-with-pyenv-virtualenv-ec583b92934c 저번 포스트 walkaroundthedevelop.tistory.com/7 에서 pyenv라는 library를 소개하였는데, Mac에서 제대로 virtual environment를 구축하기에는 충분하지가 않았습니다. pyenv를 제대로 이용하기 위해서는 pyenv-virtualenv가 필요합니다. 일단 install을 합니다. # Install Homebrew if it isn't already available /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Home..

환경설정 2021.01.28

Git Diff 활용하기

저번 포스팅에서는 해서 branching의 개념을 살펴보았습니다. 이번 포스팅에서는 git diff란 무엇이고, 어떻게 사용하는가에 대한 개념을 알아보도록 하겠습니다. 그럼 git diff가 왜 필요할까요? 한 예로, 그 전 포스팅에서 branch를 옮길 때, 마지막으로 커밋되어있는 파일과 다를 때, 충돌이 난다고 했습니다. 임시조치로 git stash를 배웠지만, 실제로 마지막 commit에서 많이 벗어나 있고, commit하기에는 적절하지 않을 상황일 때, git diff 를 사용해서 어떤 점이 다른지 볼 수 있습니다. 여기서 주의할 점은, 새로운 파일을 만들 경우에는 error가 나지 않는다는 점입니다! untracked file이 되기 때문이죠 git diff를 하면, 마지막 커밋과 어떤 점이 다..

Utils/Git 2021.01.26

git pull, branch 개념 (ft. gitflow, pull, clone)

지난 번 포스팅에서는 git push까지 알아봤습니다. git push를 해서 remote repository에 올린 이후에, 다운받으려면 어떻게 할까요? 가장 쉬운 방법은 git clone 이 있습니다. $ git clone git clone의 경우 새로운 디렉토리가 생기게 되고, authorization 문제가 없는 한 아주 쉽게 받아올 수 있습니다. 하지만 만약 git local repository에서 새로운 기록들을 다운받고자 하면 어떻게 하면 좋을까요? 그럴 때 사용하는 게 git pull 입니다. $ git pull 사실, git pull 은 git fetch와 git merge 두 개의 커맨드로 이루어져 있는데, git pull을 할 때 가끔 에러가 나는데, 이는 git merge 에서 생기..

Utils/Git 2021.01.25

Git의 기본적인 명령어들 (기초사용법)

Git은 기본적으로 인터넷 없이도 사용할 수 있는 프로그램이고, 컴퓨터 OS 위에서 사용하는 프로그램입니다. (맥, 윈도우, 리눅스 등) 그러기 대문에, git을 사용하기 위해서는, 원하는 컴퓨터 운영체제에서 git을 다운받아서 설치하여야 합니다. git-scm.com/ git 홈페이지에 가면 각각 운영체제 별로 git을 다운받을 수 있습니다. 이때 주의할 점은, mac과 리눅스에서는 터미널이 기본으로 주어지지만, 윈도우에서는 그러지 않는 만큼, 윈도우에서 git을 설치할 때는, git command line (git bash)을 꼭 설치하는 것이 좋습니다! 왜냐하면, git은 command line을 사용하여 관리하는 것이 편하기 때문이죠! git gui같은 경우에는 있으면 편할 수 있지만, gui 툴..

Utils/Git 2021.01.25

Git이란? (ft. version control, SVN, github)

Git이란 무엇일까요? Git이란 버전 컨트롤 프로그램의 한 종류입니다. (svn과 같은) 그럼 버전 관리(컨트롤) 툴이란 어떤 걸 의미할까요? 쉽게 설명하자면, 이력서를 만들 때, 여러가지 버전을 만드는 것을 생각하면 편합니다. 지원하는 회사마다, 강조하고 싶은 경력이나, 이력이 있고, 또 빼고 싶은 사항이나 추가하고 싶은 사항이 다를 수 있겠죠? 그리고 시간이 지날수록, 추가 하고 싶은 게 많지만, 예전의 버전도 남겨놓고 싶을 수 있을 겁니다. 버전별로 새로운 파일을 저장할 수도 있겠지만, 버전 관리 툴은, 그런 번거로움 없이, 하나의 파일만 유지한 채로 그 기록을 기록만 한다면 모두 저장할 수 있습니다. 그럼 git과 SVN의 차이는 어떻게 될까요? Git은 분산관리식 구조인 반면에, SVN은 중앙..

Utils/Git 2021.01.24

JPA 를 이용한 Spring Security 로그인 구현(H2 DB)

오늘은 드디어 JPA를 사용하여 H2 데이터베이스에 있는 유저 정보를 이용해서 로그인을 구현해 보도록 하겠습니다. 일단 UserRepository를 만듭니다. package com.myBoard.demo.model; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository { Optional findByUserName(String userName); } UserRepository는 Interface로써, 실제 함수가 아니라, 함수를 정의해 놓은 것에 불과합니다. Repository 패턴을 왜 사용하는지, 또 ..

Spring Security 를 이용해서 UserDetailService 사용하기

이 포스팅은 지난 포스팅에서 이어서 나온 내용입니다. 지난 포스팅에서는 WebSecurityConfig를 만들어서 커스텀 로그인을 만들었습니다. home과 / 는 로그인을 하지 않아도 접속하게 만드는 것이 저번 포스팅까지 하였습니다. package com.myBoard.demo; // import 생략... @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/css/**", "/vendor/**", "/js/**", "/imag..

Spring Security 사용하기 - WebSecurityConfig 파일 구성하기

Spring Security를 활용해서 custom login page를 만드는 법을 배웠는데, webSecurityConfig file에 대해서 알아보겠습니다. package com.myBoard.demo; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Enable..

JSP vs Thymeleaf

보통 Java spring의 프론트엔드로 JSP를 많이 씁니다. 하지만 Jsp의 장점이자 단점은, html파일이 아니고, java 파일이라는 겁니다. 그래서, java 논리를 쓸 수 있어서 편한 점도 있지만, seperation of concern, 즉, 프로그래밍 디자인적으로 프론트엔드와 백엔드를 나누려는 요즘의 트렌드에 조금 맞지 않다고도 볼 수 있습니다. 참고 url (영어) : www.quora.com/Which-is-better-Thymeleaf-or-JSP 하지만 확실한 건, thymeleaf건 jsp건, 그 문법에 대해서 알아야 한다는 점입니다. 아무리 thymeleaf가 html이라고 해도, 태그가 있기 때문입니다. Name 위와 같이 th를 사용하여 thymeleaf 네임스페이스를 추가해..

Spring Security를 이용해서 custom login page 만들기

spring security를 이용해서 로그인을 만들면, 디폴트 로그인 페이지가 나옵니다. 다음과 같은.. 뭐 최악이라고 할 순 없지만, 이대로 쓰기는 좀 그렇기 때문에, 따로 페이지를 만들려고 합니다. 참고로 이 로그인을 하기 위해서는, username은 user, password는 임시 비밀번호가 콘솔 창에 나옵니다. 그럼 이 화면을 우리가 원하는 화면으로 어떻게 바꿀수 있을까요? WebSecurityConfig.java 파일을 만들고 override를 하면 됩니다. package com.myBoard.demo; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframewor..