전체 글 썸네일형 리스트형 무작정 프로젝트 하기 2 - 프로젝트 팀 빌딩 및 수행 계획 프로젝트를 하기로 다짐한지 시간이 꽤 흘렀고 나는 최근 이것에 대하여 어떻게 시작할 까에 대해서 많은 생각을 가지고 있었다. 스스로를 돌아봤을 때, 나는 혼자서 무언가를 이뤄내는 것 보다는 팀을 구성하여 진행하는 것에 더 능하고 이를 통해 더 꾸준히 유지할 수 있으며 더 많은 에너지를 낼 수 있는 사람이다. 그렇기 때문에 나는 팀을 구성하여 프로젝트를 진행하고자 하였고, 최강의 동기들을 모집할 수 있게 되었다.이 과정들을 글을 통해 담아보려고 한다. | 프로젝트 의지 알리기 + 자연스러운 프로젝트 팀 빌딩이번에 작성할 프로젝트의 시작은 현재 진행하고있는 프로젝트가 프리징 기간이라 조금 여유가 생긴 탓, 그리고 코로나 거리두기 단계 격상으로 인한 재택 근무를 하게 되면서 직장동료인 친구와 함께 일 벌여볼까.. 더보기 [클린코드] 시스템 수준에서 깨끗한 코드를 유지하는 법 1. 시스템 제작과 시스템 사용을 분리하라 - 제작은 사용이 아니다. 👉 소프트웨어 시스템은 (애플리테이션 객체를 제작하고 의존성을 서로 '연결' 하는) 준비과정과 (준비 과정 후에 이어지는) 런타임 로직을 분리해야한다. 시작단계 : 관심사 분리 1) Main 분리 : 시스템생성과 시스템 사용을 분리하는 방법 생성과 관련한 코드는 모두 main이나 main 이 호출하는 모듈로 옮기고, 나머지 시스템은 모든 객체가 생성되었고 의존성이 모두 연결되었다고 가정할 때, main에서 시스템에 필요한 객체를 생성한 후 이를 애플리케이션에 넘겨 사용하도록 한다. 2) 팩토리 ABSTRACT FACTORY 패턴 (추상 팩토리 패턴) 추상 팩토리 패턴은 다양한 구성 요소 별로 '객체의 집합'을 생성해야 할 때 유용하다... 더보기 [JPA] Native Query 이용하여 테이블 여러 개 union 하고 Paging 처리하여 보여주기 Springboot 에서 JPA 를 이용하여 CRUD 작업을 하는 플젝을 진행하던 중 오류가 발생하여 그 tracking 과정을 정리해보았다. | 발생오류 로그 "message": "could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet" | Issue Tracking 기본적으로 DB와 같은 구조를 가진 Entity 클래스의 Repository interface 를 생성하고 그 안에 JPA 쿼리문 작업을 진행한다. public interface TestRepository extends JpaRepository { JPARep.. 더보기 [클린코드] 클래스의 기본이 되는 주요 개념과 지향 방향 1. 클래스의 체계 - 캡슐화 접근제한자를 통해 캡슐화와 추상화 단계를 이룰 수 있다 2. 클래스는 작아야한다. - 즉 클래스가 맡은 책임이 한가지여야 한다. 한 클래스는 하나의 역할을 한다고 생각한다. - 단일 책임의 원칙 큰 클래스 몇개가 아닌 작은 클래스 몇개로 구성된 시스템이 복잡한 시스템을 구축하는데 더 적합하다. - 응집도 인스터스변수가 작아야한다. 모든 인스턴스 변수를 메서드마다 사용하는 클래스의 응집도가 가장 높다. 응집도가 높은 클래스가 바람직하다고 하기는 어렵지만, 단일 책임원칙을 위해서는 결국 응집력이 높은 여러개의 클래스들이 생성될 것이다. 깨끗한 코드를 작성한다면 클래스를 체계적으로 정리하여 변경을 하기에 더 쉬운 코드가 된다. 더보기 [클린코드] 단위테스트 TDD 법칙 세가지 TDD(Test Driven Development) : 테스트 기반 개발 첫째법칙 : 실패하는 단위 테스트를 작성할 때 까지 실제 코드를 작성하지 않는다 둘째법칙 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위테스트를 작성한다 셋째법칙 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 위 세가지 규칙을 따르면 개발과 테스트가 대략 30초 주기로 묶인다. 테스트 코드와 실제 코드가 함께 나올 수 있는 방법이다. 테스트 코드가 지저분할 수록 변경하기가 어렵다. 테스트 코드가 복잡할 수록 실제 코드를 짜는 시간보다 테스트 케이스를 점점 더 통과시키기 어려워진다. 그래서 테스트 코드는 계속해서 늘어나는 부담이 되버린다. 결국 단위 테스트 코드를 깨끗하게 구현해야 실제 코드를 짤 때 .. 더보기 [클린코드] 휴리스틱(heuristics)이란? : 휴리스틱 이론과 휴리스틱 알고리즘 클린코드 책을 읽던 중 디미터 법칙에 대한 이야기가 나왔다. 디미터 법칙이 잘 알려진 휴리스틱이라는 서술이 있었는데, 나는 휴리스틱의 제대로 된 의미조차 모르고 있었다. 그래서 휴리스틱의 기본 개념과 CS(Computer Science)에서의 휴리스틱의 의미의 차이, 휴리스틱 알고리즘에 대해 알아보고자 이 글을 작성하게 되었다. | 휴리스틱 이론 휴리스틱(heuristics) 또는 발견법(發見法)이란 불충분한 시간이나 정보로 인하여 합리적인 판단을 할 수 없거나, 체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 사람들이 빠르게 사용할 수 있게 보다 용이하게 구성된 간편추론의 방법이다. 문제해결에 있어서 복잡한 문제의 경우 초기에는 휴리스틱을 이용하여 과제를 단순화시킨 후 후기에 규범적(norma.. 더보기 2주간 재택근무 도입! 출퇴근 시간 어떻게 알차게 보낼 수 있을까? 사회적 거리두기가 4단계로 격상되면서 우리 회사도 드디어 재택근무를 진행할 수 있게 되었다! 진짜 그런 환경으로 점차 변화하고 있어서 너무 좋다 출퇴근 시간 약 3시간을 아낄 수 있게 되면서 어떻게하면 더 알차게 하루를 보낼 수 있을까 에 대한 고민을 하고 있다! 1안. 여유로운 아침 아침에 조금 더 늦게 일어날 수 있다면, 내가 애정하는 나의 집중시간인 새벽을 좀 더 알차게 많은 것들을 하면서 보낼 수 있을 것 같다! 미뤄왔던 알고리즘 문제를 저녁에 풀고. 조금은 여유롭게 산책하며 생각정리를 하고. 나의 포트폴리오를 만들기 위해, 소스를 나의 것으로 만들기 위해 프로젝트를 진행하고. 나랑 함께할 사람들이 없다는게 조금 아쉽지만! 그래도 스스로 잘 해봐야지!! 라며 다짐을 해본다 2안. 아침부터 알찬 하.. 더보기 [Lombok] Spring Boot 생성자 어노테이션 비교 정리 Spring Boot 로 개발하다보면 Lombok jar파일을 이용하여 개발을 아주 간편하게 할수 있어 자주 사용된다. 각 어노테이션별 사용법 차이를 알아보자. | 생성자 어노테이션 종류 @NoArgsConstructor @AllArgsConstructor @RequiredArgsConstructor @NoArgsConstructor - 파라미터가 없는 생성자 해당 어노테이션을 class 위에 정의하면 파라미터가 없는 생성자를 자동으로 생성한다. 만약 final로 필드를 정의한 경우 오류 메세지가 발생한다. @NonNull 어노테이션이 붙어있는 필드가 있다면 해당 생성자에서 확인하지 않는다. @AllArgsConstructor - 모든 필드를 파라미터로 가지는 생성자 모든 필드를 파라미터로 가지는 생성자.. 더보기 이전 1 ··· 6 7 8 9 10 11 12 13 다음