분류 전체보기 475

2. 주석 사용 지양해야하는 이유 - 클린 코드 4장

오늘은 객체지향적인 코드를 위해, 주석 사용을 하지 말아야하는 이유에 대해 말해보자 불분명한 주석, 오래된 주석, 불필요한 정보를 전달하는 주석은 코드 해석을 헷갈리게 만들 수 있다. "나쁜 코드에 주석을 달지 마라. 새로 짜라." Brian Wilson Kernighan, Phillip James Plauger 주석 사용을 지양하라고 말하는 가장 큰 이유는 모든 주석을 계속 관리할 수 없기 때문 처음에 주석을 왜 사용하면 안되는지, 사수에게 물어봤을 때, 들은 답변이다. 지속적으로 관리되는 착한 주석은, 얼마든지 사용해도 좋다, 다만, 그건 너무 많은 불필요한 시관과 에너지 비용을 가져가는 일이다. -> 또한, 내가 보는게 아닌 타인이 볼 때 잘못된 해석을 야기시킬수 있다. 그렇다면, 어떻게 코드에 대..

[JAVA] record 불변 객체 타입 (feat Lombok @Value)

java 14에서 preview로 등장했고, java 16때 정식 기능으로 나온 기능입니다. 새로운 java Type 이며, 자바에서 불변객체를 만들기위해, 필요한 코드의 중복을 줄여주는 기능을 합니다. (👉 Lombok과 매우 비슷 := @Value) 기능 모든 프로퍼티를 포함한 생성자 제공 모든 프로퍼티에 private final 적용 모든 프로퍼티의 getter 메소드 생성 toString, equals, hashCode 메소드 생성 프로퍼티들에게 annotation을 붙일 수 있도록 허용 불변 객체 vs record 타입 vs @Value ✨[Record 타입을 사용하지 않은, 기존의 클래스] 불변 객체를 만들기 위해, 매개변수에 private final 을 붙힘 //Record를 사용하지 않은 ..

Java/Java 문법 2022.06.02

1. 자바 네이밍 규칙 (java 네이밍 컨벤션)

[짧은 정리] 상수(final) : 대문자 변수 : 소문자 or 카멜 메소드 : 카멜 클래스 : 파스칼 URL : 소문자 + 명사(자원) + 언더바(x) 대시[-]로 변수키워드 정렬 순서 : private static final (PSF) 0. 자바 공통 네이밍 규칙 1. 대소문자가 구분되어야하고, 길이에 제한이 없다 길이에 제한이 없다가 중요한 것 같다(변수명으로 의미부여를 명확하게 -> 주석사용 지양) 2. 예약어 사용 x java에서 사용하고있는 명들 (ex - class, import, char, break) 3. 숫자로 시작하면 안된다 4. 특수문자는 '_(언더바)' 와 '$' 만 허용한다. 5. 파스칼 표기법 (PascalCase)과 카멜 표기법(camelCase)를 사용한다. PascalCa..

0. Google style convention 적용하기

자잘한, 코드 작성 스타일을, 강제로 맞추는 - 구글에서 정한 컨벤션 스타일이다. 나는 회사에서 인텔리제이에 적용해서 사용한다..! 코드 스타일 강제 컨벤션(내용) 들여쓰기 4칸으로 중괄호 생략 x 변수 선언 들여쓰기 구글 스타일 컨벤션 적용법 1) git hub 저장소에서 압축 파일 다운 https://github.com/google/styleguide -> download.zip 2) 인텔리제이에 적용 (순서대로) Intellij-java-google-style.xml Preference - editor - code style - schema - import (1)번 Java - tap size 4 - indent 4 - continuation indent 4 3) 코드 정렬(ctrl + alt +L..

[JAVA] 자바 클린 코딩 하기 - 객체지향이기위해 지켜야하는 것들

첫 회사에 들어와, 온보딩을 하면서 가장 많이 배우고, 아직도 어려운게 깨끗하게 코딩하고, 협업을 위해 규칙있게 코딩하는 방법이다 즉, 클린코딩,, 말로만하고, 글로만 읽는 클린코딩이 아니라 내 코드에 직접 적용하려니 헷갈리는게 이만저만이 아니었다. 그래서! 알아가고 있는 것을 기록하기위한 포스팅이다! (계속계속 추가할 예정) 목 록 1. 자바 네이밍 규칙 + 메소드 명은 직관적이게 + 메소드 명은, 그 메소드를 가지는 객체의 기준으로 작성 (ex - Member.createMember() X 👉 Member.create() ) 객체를 기준으로 더 직관적이게 작성 2. 주석 사용은 지양 3. 정적변수, 동적변수 - 재할당 하지 않는 것은 final 처리 (상수 변환) 4. 정규표현식은 나이스? 5. In..

[Spring Controller test Error] - Invalid use of argument matchers! - "Mock argument matcher 에러"

@Test @DisplayName("Member 정상 수정") void updateMemberTest() throws Exception { String content = objectMapper.writeValueAsString( new MemberDto.Request(NAME, EMAIL, PHONE_NUMBER)); doNothing().when(memberService).update(MEMBER_ID,any(MemberDto.Request.class)); final ResultActions resultActions = mockmvc.perform(delete("/member") .param("memberId",Long.toString(MEMBER_ID)) .content(content) .conten..

Spring/Spring err 2022.05.26

[JAVA8] Stream API란 - fiter /map /of 사용방법

JAVA Stream API JAVA stream 과 stream API는 다릅니다. java stream 은 java 에서 다루는, 입출력 흐름입니다. 우리가 코드에서 stream으로 사용하는 것이, Stream API입니다. // 컬렉션에서 스트림 생성 Stream stream = list.stream(); Stream API란, 컬렉션 또는 배열 인스턴스에 저장된 데이터를 가지고, 중간연산과 최종연산을 진행하기 좋은 구조로 배치시키는 복사본이라고 할 수 있습니다. Stream API 특징 스트림은 외부 반복을 통해 작업하는 컬렉션과 다르게, 내부 반복을 통해 작업을 수행합니다. 스트림은 재사용이 가능한 컬렉션과 다르게 단 1번만 사용할 수 있습니다. 스트림은 원본 데이터를 변경하지 않고, 복사해서 ..

Java/Java 문법 2022.05.24

git pull 오류 / git pull 전략 / fetch vs merge

맥북 git pull 에러 ! [rejected] master -> master (fetch first) error: 레퍼런스를 'https://bitbucket.org/thalsal/test.git'에 푸시하는데 실패했습니다 힌트: 리모트에 로컬에 없는 사항이 들어 있으므로 업데이트가 힌트: 거부되었습니다. 이 상황은 보통 또 다른 저장소에서 같은 힌트: 저장소로 푸시할 때 발생합니다. 푸시하기 전에 힌트: ('git pull ...' 등 명령으로) 리모트 변경 사항을 먼저 힌트: 포함해야 합니다. 힌트: 자세한 정보는 'git push --help'의 "Note about fast-forwards' 부분을 힌트: 참고하십시오. hmin@hmins-MacBook-Pro test % git pull or..

Git 2022.05.24

[Git] 커밋 메세지 컨벤션 - Commit convention, Gitmoji

깃 커밋 컨벤션을 지키는 대표적인 2가지 방식을 정리해보고자 한다. 1. 유다시티 스타일 : 유다시티 학원에서 제시한 커밋 컨벤션 2. 깃모지 : 이모티콘을 활용한, 이모지 컨벤션 1. 유다시티 커밋 컨벤션 스타일 Commit convention (커밋 컨벤션) feat : 새로운 기능과 관련된 것을 의미한다. fix : 오류와 같은 것을 수정했을 때 사용한다. test : test를 추가하거나 수정했을 때를 의미한다. docs : 문서와 관련하여 수정한 부분이 있을 때 사용한다. style : 코드의 변화와 관련없는 포맷이나 세미콜론을 놓친 것과 같은 부분들을 의미한다. refactor : 코드의 리팩토링을 의미한다. build : 빌드 관련 파일 수정에 대한 커밋 chore : 패키지 매니저 설정 등..

Git 2022.05.23

[HomeBrew] 맥 터미널로 쉽게 설치하고 설정하기 - Mac 자바 설치

맥북! 낭만있는 사과! 받았다..! 회사에서..! 평생 윈도우와 갤럭시만 사용했던, 사람이 맥북을 처음받아... 맥으로 개발 시작하기를 기록해본다 🤣 맥북을 사면 가장 먼저해야할 건 Brew 설치!! 물론, 내가 알아낸 건 아니고 ㅎㅎㅎ Java설치할려고 오라클 들어가니까, 사수님이 알려주셨다,,, 촌놈이다 따라서, brew를 이용해서 자바 11을 다운받아볼려고 한다! home brew install java...! 1. homebrew 설치 homebrew란, 쉽게말해 맥을위한 설치 도우미다! 정식 설명으로는, 맥OS용 패키지 관리자인데 --> 맥의 터미널을 강력하게 이용하도록 도와주는 프로그램 정도로 이해하고 넘어가도 될것같다. homebrew를 사용하면, 오라클 들어가서 jdk 찾고 로그인하고, 다..