SpringBoot 2.4 설정파일(yml) 사용법
2021. 6. 20. 16:31
Spring
yml 기준 2.4부터는 기본적으로 기존에 사용하던 문법을 지양한다. 그렇다고 사용할 수 없는건 아니지만 2.4내용은 지양하도록 한다. 아래에서 설명 하도록 하겠다. List 구조로 가져오는 방법 application-blog.yml blogs: # prefix로써 리스트로 받기 위해서 필요하다. list: # 클래스의 변수와 매핑된다. # 아래는 리스트가 될 목록 - url: https://dev -monkey-dugi.tistory.com/ rssUrl: https://dev-monkey-dugi.tistory.com/rss description: 더기이 - url: https://jojoldu.tistory.com/ rssUrl: https://jojoldu.tistory.com/rss descri..
GitHub Push한 commit message 변경하기
2021. 5. 22. 18:49
Git
1. rebase를 이용해 해당 커밋으로 접근하기 HEAD 기준으로 첫 번째에 있는 커밋을 가리 킵니다. ~2가 되면 두 번째 커밋을 가리키게 됩니다. git rebase HEAD~1 -i2. 커밋 편집 모드로 진입 위의 명령어를 실행하면, 편집기가 나오는데 가장 첫 라인에 pick이라는 텍스트를 reword로 변경 후 저장하면 커밋 메시지 수정 편집기가 나타나게 됩니다. reword로 하면 커밋 내용을 보존해서 편집기를 열어 주게 됩니다. 이제 메시지 편집을 진행 후 저장 합니다. 3. github에 push하기 커밋 메시지 수정을 완료 했으므로 push를 합니다. 이전 내용은 모두 덮어버리겠다!!의 의미인 --force 옵션을 사용합니다. git push --force
InteliJ에서 querydsl cannot find symbol 문제
2021. 5. 22. 15:38
InteliJ
querydsl 설정은 완벽!! 했는데도 이상하게 inteliJ에서 querydsl cannot find symbol와 같은 에러가 발생하는 경우가 있습니다. 이에 대해 설명해 보겠습니다. querydsl cannot find symbol querydsl과 관련된 파일에 대해 querydsl cannot find symbol이란 에러가 발생할 경우 이유는 세 가지가 있습니다. Q클래스가 제대로 생성이 되지 않았기 때문이기 때문에 재생성 해주면 됩니다. 아래와 같이 compileQeurydsl을 재실행 하면 재생성 됩니다. AnnotationProcess 설정 문제. 원인은 모르겠음. GradleImport에 있는 것을 전부 Default로 이동. Source Folder에 querydsl 디렉토리가 연동..
JPA 지연로딩과 즉시로딩
2021. 5. 16. 12:10
JPA
지연로딩과 즉시로딩이란? 지연로딩(LAZY) 연관된 엔티티를 한방 쿼리로 조회 하지 않고, 필요한 시점에 따로 쿼리를 만드는 것을 뜻 합니다. 매번 연관된 모든 데이터를 조회할 필요가 없을 경우 유용 합니다. 즉시로딩(EARGER) 매번 연관된 엔티티가 모두 필요할 경우 한방 쿼리를 만드는 것을 뜻 합니다. 즉, 매번 조인 쿼리가 나가게 됩니다. 즉시로딩과 지연로딩 예제 Beverage와 BeverageBrand는 N : 1 음료 엔티티( 사이다, 콜라와 같은 음료 종류 엔티티 ) package dugi; import javax.persistence.*; @Entity public class Beverage { @Id @GeneratedValue(strategy = GenerationType.IDENTI..
객체지향 프로그래밍이 뭔가요?
2021. 5. 15. 10:20
기타 IT
가장 많이 하는 세상 모든 것을 객체로 바라보고 객체로 설계한다. 맞는 말이라고 생각 합니다. 하지만 당연히 현실에서는 불가능한 날개가 달린 호랑이 객체 같은 것들이 나올 수는 있겠죠?? 즉, 세상의 모든 것을 객체로 바라본다는 것은 호랑이 자체를 객체로만 만들 수 있다는 아니라는 점 입니다. 현실에서는 불가능한 날 수 있는 호랑이 객체도 가능 하다는 것이죠.(너무 당연..) 결국, 호랑이에 대한 모든 것을 객체로 만든다기 보다는 맹수라는 객체로 호랑이를 추상화하고, 여기에 모양이 맞는 호랑이, 사자와 같은 객체 만드는 것이라고 생각 합니다. 이렇게 원하는 것들을 모두 객체로 바라보는 것이 객체지향이고, 이를 프로그래밍화 하는 것이 객체지향 프로그래밍 이라고 생각 합니다. 객체지향 프로그래밍은 왜 생겨났..
좋은 코드가 뭐에요??
2021. 5. 15. 09:35
기타 IT
사람들은 이건 좋은 코드야 이건 안좋은 코드야 라는 말을 합니다. 이에 대해 객체지향 생활체조 원칙, TDD, DDD 등 여러가지 기법들이 존재 합니다. 하지만 항상 저러한 이상적인 원칙을 따를 수는 없다고 생각 합니다. 각 상황마다 너무 너무 적용할 수 있는 사례들이 다르기 때문 입니다. 간단한 예로 반드시 객체지향 생활 체조 원칙의 else문을 사용하지 말아라. 들여쓰기는 1단계만 해라. 등과 같은 것들이 있습니다. 저는 이를 토이 프로젝트를 할 때는 더 심하게 지키려고 하지만 회사에서는 문화가 그렇지 않기 때문에 어느정도만 지키려고 합니다. 이는 핑계가 될 수도 있겠지만, 효율적인 것이라고 생각 합니다. SI에서 진행 하다보니 코드 구조를 제대로 알기가 힘듭니다. 코드의 역사를 제대로 알아야 과거 ..
StringBuilder, StringBuffer와 String 차이
2021. 5. 15. 09:02
Java
Java에서는 문자열을 다룰 때 String, StringBuffer, StringBuilder가 있습니다. 이 차이를 제대로 모르고 쓴다면 연산이 많이 질 경우 문제가 발생 하게 됩니다. 그 차이에 대해 알아 보도록 하겠습니다. String과 StringBuffer, StringBuilder의 차이 String은 불변, Buffer와 Bulder는 가변 객체 입니다. 불변이란 객체를 변화 시킬 수 없는 것이고, 가변은 객체가 변할 수 있는 것 입니다. 예를 들어 보겠습니다. 아래의 코드는 문자열을 더했지만 String 클래스가 연산한 값을 새로운 String 객체로 생성한 것 입니다. 결과는 "ab"이지만 새로 "b" 문자열을 합칠 때 새로운 객체를 생성하고 이전의 str 객체는 GC에 의해서 제거 되..