느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
[intellij] 클래스의 멤버변수와 메소드를 한눈에 보는 단축키
IT/IntelliJ 2023. 1. 8. 18:37

좌측창에서 볼 때 cmd + 7 팝업창으로 볼때 cmd + f12

ORACLE Squence 초기화 시키는 프로시저
IT/ORACLE 2022. 7. 14. 23:05

시퀀스를 0으로 초기화할 방법을 찾고있었느데, 아래의 방법밖에 없는듯 하다.. CREATE OR REPLACE PROCEDURE pr_reset_seq(seq_name IN VARCHAR2 ) IS seq_val NUMBER; BEGIN EXECUTE IMMEDIATE 'select [시퀀스명].nextval from dual' INTO seq_val; EXECUTE IMMEDIATE 'alter sequence [시퀀스명] increment by -' || seq_val || ' minvalue 0'; EXECUTE IMMEDIATE 'select [시퀀스명].nextval from dual' INTO seq_val; EXECUTE IMMEDIA..

[Git] Unlink of file Failed. Should I try again?
IT/Git 2022. 6. 20. 09:41

git reset --hard 명령어를 통해서 이전 커밋으로 돌아가려고 하는데 위의 에러가 뜨면서 특정 파일때문에 못돌아가는 현상이 발생했었다. 확인해보니, 다른 프로그램이 해당 파일을 사용하고 있을 경우 발생할 수 있는 문제였다. https://stackoverflow.com/questions/4389833/unlink-of-file-failed-should-i-try-again Unlink of file Failed. Should I try again? Something wrong is going on with one of the files in my local git repository. When I'm trying to change the branch it says: Unlink of file '..

article thumbnail
Github README 하단에 내 최신 블로그글 올라오게 하기
IT/Git 2022. 6. 4. 22:28

Github들어가면 다음과같이, 자신만의 README를 꾸미는 사람들이 많다. 해당 README를 꾸미는 방법은 자신의 아이디와 똑같은 repository를 만들고, 거기서 README.md를 작성하면 된다. 그런데, 다음과같이 README하단에 자신의 블로그 최신글을 올리는 사람들이 종종 눈에뜨여서 해당 방법에 대해 조사를 하였고 이 절차에 대해 업로드하게 된다. 자신의 아이디와 같은 이름의 repository로 들어간다. 그리고, main.py라는 파이썬 파일을 만들고 아래와 같이 입력한다. import feedparser, time URL="[rss 피드 URL]" RSS_FEED = feedparser.parse(URL) MAX_POST=7 markdown_text = """ [쓰고싶은 내용] "..

article thumbnail
git 히스토리에 실수로 추가한 용량큰 파일 찾아 제거하기
IT/Git 2022. 5. 14. 19:31

나는 현재 11번가라는 회사로 이직해서 다니고 있다. 내가 들어온팀은 기프티콘 개발팀인데, 팀의 히스토리가 참 재미있다. 본래 SKT에서 시작된 프로젝트였으나, SKP로 프로젝트가 이전되고 현재는 SKP와 11번가가 18년도에 분할하였고, 기프티콘 프로젝트는 11번가에 속하게된 프로젝트가 되었다. 그리고 해당 프로젝트의 경우 원래 외주를 주던 프로젝트였는데, 이 프로젝트를 11번가에서 직접맡아 관리를 하게 되면서 내재화를 하게 되었다. 외주를 맡기던 프로젝트다보니 많은 레거시가 있고 이를 리팩토링 및 최신화 하는것이 우리팀의 현재 목적이 아닐까 싶다. 각설하고, 이번 글을 쓰게된 계기는 특정 프로젝트의 PR이 올라와서 clone해오면서 프로젝트를 받아오게 되었는데 프로젝트의 용량이 무지막지하게 크다는 것..

article thumbnail
Cookie는 왜쓰는가? 그리고 Cookie관련 간단한 자바 예제
IT/JAVA 2022. 3. 6. 14:17

과거의 나는 쿠키라고 하면 나는 일단, 맛있는 쿠키가 생각난다. 하지만, 지금같이 개발자로 일하고 있는 경우에는 쿠키라 하면, IT 용어로서의 쿠키가 생각나는게 현실이다. 그러면 쿠키가 무엇인지 IT 용어사전을 통해 검색을 해보자. 쿠키(영어: cookie)란 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다. HTTP 쿠키, 웹 쿠키, 브라우저 쿠키라고도 한다. 이 기록 파일에 담긴 정보는 인터넷 사용자가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀐다. 위와같이 인터넷에 정의되어 있다. 일단, 쿠키를 사용하는 이유는 HTTP는 기본적으로..

article thumbnail
FeignClient 사용시 GET요청시 인자를 추가하기 (@SpringQueryMap)
IT/Spring Boot 2022. 2. 27. 22:22

FeignClient를 사용할때 @GetMapping을 이용하고, 객체를 전달하도록 인자로 전달하였으나, 뭔가 자동으로 POST요청으로 전달되는 것으로 보였다. 다음의 예제는 해당 문제를 재현하기위한 코드들이다. 이 재현 코드에는 총 세개의 클래스가 쓰였다. MyController MyFeign MyParam @RestController public class MyController { private final MyFeign feign; @Autowired public MyController(MyFeign feign) { this.feign = feign; } @GetMapping("/test") public void getTest(MyParam param) { System.out.println(Stri..

article thumbnail
ThreadLocal과 스프링의 트랜잭션 관리
IT/SpringFramework 2022. 2. 20. 18:45

ThreadLocal 각 스레드마다 개별적으로 변수를 저장하는 기능을 제공한다. ThreadLocal을 사용하면 특정 스레드에서만 액세스 할 수 있는 데이터를 저장할 수 있다. 즉, 쓰레드라는 scope 내에서 공유되어 사용될 수 있는 값으로 다른 쓰레드에서 공유변수를 접근할 시 발생할 수 있는 동시성 문제의 예방을 위해 만들어졌다. 사용법 ThreadLocal에서 제공하는 get, set 메서드를 통해 값을 읽거나 쓸 수 있다. 예제 public class ContextTest { @Test void test() { Context.threadLocal.set(10); System.out.println(String.format("%s - %s", Thread.currentThread(), Context...

article thumbnail
Equals를 재정의할때 반드시 hashCode를 재정의 해야한다.
IT/JAVA 2022. 2. 13. 19:21

회사업무중 중국개발자 분들(위메프 연길센터에서 업무를 수행하시는 분들)이 작성한 통계관련 코드에 기능을 추가하는 페어프로그래밍을 하던도중, 이슈가 있는 코드를 발견하였다. Custom하게 만든 객체를 HashMap의 키값으로 사용하였고, Custom객체를 통해 key값에 해당하는 값을 갖고오는데 원하는 데로 갖고오지 않았기 때문이다. 문제가 있었던 부분은 Custom객체를 확인하자 바로 알 수 있었다. 문제가 있었던 부분은 Effective Java에서 강조하는 아래의 법칙을 지키지 않았기 때문이다. 아래의 글은 Effective 자바의 글이다. equals를 재정의할 떄는 반드시 hashCode도 재정의 하라 많은 버그가 hashCode 메서드를 재정의하지 않아서 생긴다. equals 메서드를 재정의하..

article thumbnail
i = i + 1, i++ 의 차이
IT/JAVA 2022. 1. 25. 20:16

재밌는 문제가 있었다. 관련하여 리서치 및 테스트를 조금 해봐서 적게된다. 문제의 요지는 for문에서 3번째로 오는 증감연산자에서 i = i + 1을 사용하는 것보다 i++를 사용하는게 성능의 이점이 있다는 말이다. 리서치를 해본 결과, i++ 연산의 경우에는 다음과 같이 바이트 코드로 컴파일 된다고 한다. IINC 1 1 그리고 i = i + 1 연산의 경우는 다음과 같은 형의 바이트 코드로 컴파일 된다고 한다. ILOAD 1 ICONST_1 IADD ISTORE 1 결론적으로 i++쪽의 바이코드가 더 적은 연산을 수행한다. i++의 경우 1번인덱스의 값을 1 증가시키는 바이트 코드이고 i = i + 1의 경우 1번 인덱스의 값을 스택에 넣고 상수 1을 스택에 넣고 이 둘을 더해서 1번 인덱스에 저장하..