본문 바로가기

분류 전체보기

(99)
Spring 생태계의 GraphQL 의존성 정리 Spring 진영에서 GraqphQL 관련 의존성은 3가지가 있다. com.graphql-java com.graphql-java-kickstart spring-boot-starter-graphql 첫 번째 의존성의 경우 Andreas Marek 란 사람이 개인적으로 진행한 프로젝트이고, 스프링에서 계획이 나오기 전부터 작업한 것으로 보입니다. 하지만 스프링 진영에서 GraqphQL 공식 지원을 준비함에 따라 사람들이 혼동을 하기 시작했습니다. 그래서 Andreas Marek 은 혼동을 줄이기 위해 com.graphql-java-kickstart를 만들게 되었습니다. 블로그에서 자세한 내용을 확인할 수 있습니다. 스프링에서 공식적으로 지원해주는 세 번째 의존성은 현재 공식 릴리즈를 준비 중입니다. [공식문..
2022/01/13 TIL 클린코드 7장 : 오류처리 Checked Exception은 OCP(Open Closed Principle)을 위반한다. 하위 메소드에서 Checked Exception이 발생하면 상위 메소드 모두에 예외 처리를 해야 하는데 이는 강한 의존성을 만들게 되기 때문이다. JPA에서 Runtime Exception(Unchecked Exception)을 상속받아 예외 처리를 하는데, 근거가 부족하다는 생각을 종종 했습니다. 의존성과 관련한 이슈가 있다는 것을 인지하고 사용하는 것이 좋을 것 같습니다. 특수 사례 패턴 예외 말고 기본값을 설정하여 리턴하는 패턴입니다. 클린코드 8장 : 경계 학습 테스트는 API를 사용하려는 목적에 초점을 맞춘다. 내가 작성한 코드가 아니라 이미 만들어진 코드를 테스트하는 것을 ..
2022/01/12 TIL 코드컴플리트2 34장 : 소프트웨어 장인정신에 대한 주제 좋은 설계는 오직 상위 계층에 집중하는 데 많은 시간을 보내고 하위 계층은 무시할 수 있도록 하는 것이다. 좋은 개발자가 되기 위해 저수준까지 공부해야 한다는 생각에는 변함이 없지만 이 탐구의 목표가 저수준을 이해함으로써 고수준에서의 관점이 깊어지기 위함이라는 것을 말하는 것 같다. AWS TIP EC2 t2.micro t3.micro 의 가격은 같다 JPA Native 쿼리 조심하기 JPA를 사용할 때 @Modifying 애노테이션과 @Query 애노테이션을 사용하면 네이티브 쿼리(SQL)를 사용해서 데이터 베이스에 저장, 수정, 삭제할 수 있다. 하지만 연관관계가 맺어있지 않은 칼럼에 연관관계를 추가했을 때 변경을 감지하지 못한다. 변경 전 L..
2022/01/11 TIL 코드 컴플리트2 33장 : 개발자의 성격 누구나 전날 너무 열심히 일해서 그다음 날을 완전히 날려버리거나 한 달 전에 너무 열심히 일해서 다음 달을 완전히 날려버린 경험이 있을 것이다. 지금보다 경력이 없었을 때, 이런 점을 통제하지 못해 힘들었던 경험이 많았다. 자기 객관화를 통해 어떻게 꾸준하게 성잘할 수 있을지 고민하는 것은 언제나 중요한 고민거리이다. 프로그래밍에 뛰어난 사람은 자신의 두뇌가 얼마나 작은지 깨달은 사람이다. 담당하는 도메인에 대한 지식이 늘어날수록 기억력에 의존하고 싶은 욕망이 점점 커지는데, 이런 부분은 경계해야 한다. 컴파일러 메시지를 이해하지 못하면서 이해하는 것처럼 행동하는 것도 또 다른 일반적인 맹점이다. TDD를 진행하다 보면 다양한 에러 메시지를 보게 되는데, 무의식적..
2022/01/10 TIL 코드 컴플리트2 31장 : 레이아웃과 스타일 코드를 보기 좋게 작성하는 것도 중요하지만, 코드의 구조를 보여주는 것이 더 중요하다. 제어 구조의 레이아웃은 가독성과 이해력에 영향을 미치기 때문에 우선시 된다. 컴퓨터가 이해할 수 있는 코드는 어떤 바보라도 작성할 수 있다. 훌륭한 개발자는 사람이 이해할 수 있는 코드를 작성한다. - 마틴 파울러 - 코드 작성규칙에 대해 고민할 때는 미적인 부분보다는 가독성과 이해력을 우선시해야 합니다. 코드 컴플리트2 32장 : 스스로를 설명하는 코드 문서화 부담의 상당 부분을 좋은 프로그래밍 스타일로 해결한다. 문사화에 들일 노력을 코드 작성에 들여라. 문서화의 시작은 가독성 좋은 코드 작성이다. 줄 끝 주셕은 피하라. 형식을 맞추기 어렵고 모호한 경우가 많다. 설명이..
2022/01/09 TIL 2022/01/09 TIL 2021 유스콘 회고 작성 보러가기 GoF의 디자인 패턴 1장 서론 디자인 패턴이란? 어떤 상황의 문제에 대한 해법 동일한 문제가 발생했을 때 같은 방법으로 해결할 수 있다면 그것이 디자인 패턴이라는 것을 강조한다. 하나의 패턴은 아래의 4가지 요소를 반드시 포함한다. 패턴이름 문제(사용시기와 그 배경) 해법 결과(적용해서 얻은 결과와 장단점) 앞으로 책을 볼 때 위의 4가지를 염두에 두고 보면 좋을 것 같다. 디자인 패턴의 분류 목적은 '생성', '구조', '행동' 으로 나누어 진다. 범위는 '클래스'와 '객체'로 나누어 진다. 앞으로 학습할 패턴이 어디에 속하는지 염두에 두고 보면 좋을 것 같다. 시그니..
유스콘 2021 Spring Boot TDD Start! 회고 유스콘이란? 유스콘은 아는 것은 유쾌하게, 모르는 것은 진지하게 라는 모토로 젊은 개발자와 선배 개발자가 함께 가치 있는 기술에 관한 정보와 경험을 공유하는 콘퍼런스입니다. 지원 동기 2020 유스콘도 연사자로 참여해보고 싶었지만, 이런저런 이유로 다른 분들의 발표를 보는 참여자였습니다. 그래서 마음 한켠에 2021 유스콘에는 꼭 연사자로 참여하고 싶다는 막연한 마음이 있었습니다. 시간이 흘러 2021 유스콘 연사자를 모집하는 시기가 되었고, 지원을 해야겠다는 생각을 했습니다. 하지만 막상 지원서를 작성하다 보니 스스로의 부족한 점과 발표의 결과가 안 좋았을 때를 생각하게 되었습니다. '남들보다 특출나게 잘하는 게 없는 것 같은데 발표를 해도 되는 걸까?' '발표를 하다 큰 실수를 하면 어쩌지?' '발표..
2022/01/08 TIL 그림으로 배우는 Http & Network Basic 회고 책을 읽고 나서 Http가 친숙해진 느낌이었습니다. 실무에서 Http와 관련된 오류를 경험하게 되면 당황하는 경우가 많았는데 실체를 알게 되어 두려움이 줄어들었습니다. 회고보러가기 클린코드 5장 형식 맞추기 팀에 속한다면 자신이 선호해야 할 규칙은 바로 팀 규칙이다. 팀은 한 가지 규칙에 합의애햐 한다. 종종 많은 사람들이 단순히 개발 실력만을 중요하다가 생각하는 경향이 있는데 이런 부분은 위험하다고 생각한다. 생각하는 것보다 팀원들과의 협력이 개발자에게 중요한 능력치이다. 클린코드 6장 객체와 자료 구조 디미터의 법칙 : 한 객체가 알아야 하는 다른 객체를 최소한으로 유지하라
그림으로 배우는 Http&Network Basic 회고 그림으로 배우는 Http&Network Basic 회고 동기 실무에서 만나는 대분의 통신은 Http로 하는데 지식이 부족하다고 생각해서 읽게 되었습니다. 아샬님께서 예전에 추천해 주셨던 책이라 메모해두고 이번 기회에 읽게 되었습니다. 요약 및 기억하고 싶은 내용 HTTP(HyperText Transfer Protocol)는 프로토콜입니다. 프로토콜은 '약속' 이라는 의미입니다. 일반적인 네트워크는 TCP/IP 라는 프로토콜에서 움직이고, HTTP는 그 중 하나입니다. 즉, 웹은 HTTP 라는 약속을 사용한 통신으로 이루어집니다. Http는'기술' 보단 '약속'이라는 것을 아는것이 중요하다고 생각합니다. IP와 IP주소는 다르다. IP(Internet Protocol)는 프로토콜의 명칭입니다. IP는 개개..
2022/01/07 TIL UnsupportedOperationException Java List를 Arrays.asList()나, List.of()로 초기화하게 되면 깂을 변경할 수 없기 때문에 UnsupportedOperationException가 발생한다. 코딩도장 프로그래머스 기능 개발 Github Actoins actions/checkout@v2 해당 레포에 있는 코드를 가져온다. uses: actions/setup-java@v2 자바 버전을 세팅할 수 있도록 도와준다.