전체 글 135

헤깔리는 git 명령어 정리

너무 기초적이고 자주쓰이는 명령어는 제외하였고, 종종 쓰긴하지만 헤깔리는 git 명령어 + 옵션을 위주로 정리 하였다. git init 등 git init 먼저, 새로운 저장소를 생성하는 명령어 이다. 저장소 정보가 담긴 .git 폴더가 생성이 된다. 일반적으로는 프로젝트 생성과 배포를 할때에 원격저장소와 연동을 해야 하기 때문에 아래와 같은 단계를 거친다. 프로젝트 생성 및 개발수행 -> git init -> github에서 repository 생성 -> git remote add -> git add . -> git commit -m "첫번째커밋" -> git push origin main 또는 아래와 같이 원격저장소를 먼저 만든 다음에 git clone을 통해 원격저장소 주소와 정보가 모두 담긴 fo..

오늘 영어 표현 - You are supposed to submit 등

(매일 새로운 영어 표현과 구문을 올립니다. 주로 economist 뉴스, 미드, 각종 영어자료 등을 참고해서 고릅니다.) -I am in charge of the Marketing Department where you have been assigned. 저는 당신이 배치된 마케팅 부서의 책임자입니다. *be assigned : 배치되다 -You are supposed to submit your work to me since I am your immediate supervisor. 제가 당신의 직속상사이니, 작업물을 저에게 제출하시면 됩니다. *be supposed to : ~할 의무가 있다. *immediate supervisor : 직속상사 -My computer is acting up again. ..

react와 spring boot

spring boot를 통해 rest api 서버를 구축하고, react를 통해 데이터를 가져와 화면에 뿌려주는 간단한 구현을 해보고자 한다. 매우매우 단순한 화면을 통해 프론트엔드 / 백엔드 연동 샘플을 만들고자 한다. *참고 git) https://github.com/kimseonguk197/react_spring_connect REACT 프로젝트 생성 커맨드창에 아래 명령어를 통해 react프로젝트를 생성한다.(mac기준, npm이 설치 됐다 가정하겠다.) npm create react-app myreact 에러가 나지 않았다면 해당 폴더로 이동후에 react를 실행한다 cd react-app npm start 3000번 port에 아래와 같은 이미지에 나왔다면, 정상 구체적인 코딩은 일단 스프링 ..

Web server failed to start. Port 8080 was already in use.

intellij가 버벅일때가 자주 있는데, 비정상적으로 intellij가 종료될때 사용중이던 spring 서비스가 정상종료 되지 않는 경우가 있다. 이때에 다시 intellij를 켜서 spring서버 start를 누르면 아래와 같은 사용중인 port 에러가 발생한다. Web server failed to start. Port 8080 was already in use. 이때에는 프로세스를 강제로 종료 해줘야 하는데, PID정보가 필요하다. 아래와 같이 PORT번호를 통해 PID를 찾는 명령어를 실행 sudo lsof -i :8080 PID 정보는 root권한이 필요하므로, sudo를 사용하였고 현재 로그인된 USER 비밀번호를 입력하면 된다. 그다음에 아래와 같이 PID를 종료 시키는 명령어를 실행하면 ..

@JsonIgnore, @JsonBackReference, @JsonManagedReference의 차이 및 FetchType.LAZY와의 관계

@JsonIgnore@JsonIgnore는 사실 OneToMany ManyToOne 등 객체간 참조관계를 원천적으로 차단하는데 사용되기 위해 설계된 것은 아니다. 이 어노테이션은 말그대로 return 해주는 json에서 지정된 컬럼을 제외하겠다는 어노테이션이다. 그래서, password와 같은 민감한 정보가 return값으로 나가지 않도록 사용되기도 하고, json에서 제외되다 보니, 순환참조를 끊는데 사용되기도 하는 것이다. @JsonManagedReference과 @JsonBackReference두 어노테이션은 두순환참조를 끊기 위해 설계되었다. @JsonManagedReference은 조회된 데이터를 정상적으로 serialize(직렬화)시킨다. 즉, 참조되는 데이터를 가져온다는 것이다. @Jsonb..

jpa - N+1문제 원인과 fetch를 통한 해결

N+1 문제란 일단 2테이블에 대한 join에서 발생하는 문제이다. left join 1번으로 끝낼수 있는 쿼리조회가 N번이나 더 추가적으로 더 발생하는 상황을 말한다. 상황 글쓴이테이블(author)과 게시글테이블(post)이 존재한다. jpa의 findAll()을 통해 모든 글쓴이에 대한 모든 게시글 정보를 JSON형태로 조회하고자 한다. 문제발생 아래와 같이 글쓴이테이블(author)이 존재한다. 글쓴이는 여러개의 글을 쓸수가 있고, 글쓴이에 대한 글 목록들을 조회하기 위해서는 post(글목록)테이블과 1 : N의 관계인 oneToMany를 설정해줘야 한다. 즉, author테이블과 post테이블을 join 해야 한다는 말이다. @Data @Entity @Table(name="author") pub..

spring 세션에서 email정보, 권한정보 꺼내기

spring security를 이용하여 회원가입, 로그인을 구성했을때, 어떻게 로그인에 성공한 USER의 email, 권한정보(admin/일반user등)을 세션을 통해 담고, 꺼낼 수 있는지 살펴보자. spring에서 로그인처리는 일반적으로 아래의 코드와 같이 UserDetailsService클래스의 loadByUserName이라는 메소드를 구현하게 된다. user정보가 있는 DB에서 가져온 emai, password정보가 사용자가 입력한 그것과 일치한다면 로그인에 성공하게 된다. 로그인 성공시에 UserDetails객체를 만들어 return하게 되는데, 여기에 email, password, 권한정보 등을 담아서 return을 하게 된다. @Service @Transactional public class..

코딩테스트(프로그래머스) 점수, 순위

이직시에 코테를 준비를 위해 leetcode, 백준 등에서 일시적으로 몰아서 문제를 풀거나, 동료들하고 문제풀이 내기를 하거나, 그런 식으로만 문제를 풀어봤지 특정 플랫폼에서 각잡고 문제를 풀어본적은 없었던 것 같다. 블로그 조회수가 올라가듯, 특정 플랫폼에서 유의미한 랭커가 되면 그것도 나름 재밌겠다 싶어서 문제풀이를 시작했다. 백준, leetcode, 프로그래머스 등 여러 코딩 문제 풀이 사이트가 있지만 ui적인 부분이 프로그래머스가 마음에 들어 프로그래머스를 택했다. 대략 작년후반부터 여기서 문제를 풀기 시작했으니, 2~3달정도 지난 현재 상황. 문제는 주로 java로 풀고 있다. 회사도 바쁘고, 개인적으로 하는 일들도 바빠서 매일 풀지는 못했지만 주말이나 시간이 남을때 몰아서 문제를 풀었다. 점수..

로컬 커맨드창에서 docker mysql로 바로 접속

도커를 이용해 mysql을 설치하고, 어떻게 접속을 해야 하는지, 특히 /bin/sh, /bin/bash 등의 입출력모드를 거치지 않고, 바로 mysql프로세스로 로그인하는 방법을 살펴보도록 하겠다. 먼저 설치부터 간단하게 해보자. docker 프로그램을 설치 한 이후에, 아래 명령어 한줄만 입력하면, mysql latest 이미지를 pulling해오고 mysql docker 프로세스를 바로 생성하게 된다. 이때 기본 계정은 root이고, password는 컨테이너 생성시 아래와 같이 설정하게 된다. docker run --name -e MYSQL_ROOT_PASSWORD= -d -p 3306:3306 mysql 이렇게 만들어진 mysql서버로 접속하는 방법은 2가지가 있다. 일반적으론 docker ps..

오늘 영어 표현 - you two are totally into each other 등

(매일 새로운 영어 표현과 구문을 올립니다. 주로 economist 뉴스, 미드, 각종 영어자료 등을 참고해서 고릅니다.) -My parents wanted me to be a ophthalmologist, but I wanted to a sheriff. 부모님은 내가 안과의사가 되길 원하셨지만, 나는 보안관이 되고 싶었다. *ophthalmologist : 안과의사 *sheriff : 보안관 -I'll come get you in five minutes. 5분 안에 데리러 갈게 -You two are totally into each other 너희 둘은 완전히 서로에게 빠져있다. -I straightened out your shower curtain so you won't get mildew. 곰팡이가..