분류 전체보기 189

맥에서 여러개의 자바 버전 세팅하기

medium.com/@chamikakasun/how-to-manage-multiple-java-version-in-macos-e5421345f6d0 How to Manage Multiple Java Version in MacOS I have been using multiple versions of Java with a Version Manager in my Mac for a while, whenever I need to switch between different… medium.com brew 를 하다보면 cask를 install 해야된다는 것입니다. brew cask install 하다가 cask에서 에러나서 안됨.. ㅠ 알고보니 brew cask install이 아니라 brew install --ca..

환경설정 2021.02.08

Java Spring Security를 이용해서 회원가입 구현하기

저번 포스팅까지 해서 로그인 기능을 구현하는데 성공했습니다. Spring Security와 JPA, H2 Database를 사용해서 로그인 기능을 구현했는데요, 이번 포스팅에서는 회원가입 기능을 구현해 보도록 하겠습니다. 다행인 건, 회원가입 기능은 로그인 기능보다 구현하기 간단하다는 것입니다. 서비스나 DAO, DTO 등도 사용하지 않고 구현을 해보도록 하겠습니다. 일단 register.html 페이지를 만듭니다. 회원 가입 회원 가입하기 비밀번호를 잃어버리셨나요? 이미 가입하셨나요? 로그인하세요 html을 만들 때 주의할 점은, 현재 Thymeleaf를 쓰고 있기 때문에 head 전에 태그를 붙여줘야 된다는 점입니다. 또, name을 camelcase 형태로 model entity에서 지정해준 대로 ..

자바 스프링 부트로 hello world 프린트하기

오늘은 스프링 부트로 hello world 를 print하는 방법을 포스팅 하도록 하겠습니다. 일단 STS(Spring Tool Suite)를 받은 후, 새로운 project를 만듭니다. 이렇게 프로젝트 관련된 이름과 package 이름도 설정해 준 후, 필요한 dependency들을 세팅해 줍니다. 현재로서 필요한 dependency는 spring-boot-starter-web 뿐입니다. 막상 세팅을 하지 않았다고 해도 나중에 pom.xml에 추가할 수 있으니 너무 걱정하지 않아도 됩니다. 다 세팅한 이후에 directoryStructure를 보면, Application.java file이 src/main/java directory안에 생성되어 있는 것을 볼 수 있습니다. 가장 빠르게 hello wor..

Python 변수 개념(namespace, local, global)

일단 아래 코드를 봅시다. age = 42 name = "Dominic" places = ["Berlin", "Cape Town", "New York"] def info(): print("%s is %i years old." % (name, age)) return info() 보통 python에서 변수는 global, local namespace 두 가지로 나눠질 수 있습니다. local namespace의 변수는 보통 함수 안에 있는 변수를 말하고, global namespace의 변수는 함수 밖의 변수를 말합니다. 하지만 왜 위 함수에서는 함수 안에서(local namepsace), 함수 밖에서(global namespace) 정의한 변수들을 사용하는 걸까요? Python에서는 global namep..

Python/Basics 2021.02.05

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 패턴을 왜 사용하는지, 또 ..