분류 전체보기 478

THE RED 백명석, 최범균 - 백발의 개발자를 꿈꾸며 : 코드리뷰, 레거시와 TDD : 강의 회고 및 개인 요약 정리(1)

회사 아이디로, FastCampus의 모든 강의를 들을 수 있지만, 남은기간이 얼마 남지않아 적응한다는 핑계로 미뤄두고있던 걸 부랴부랴 듣기시작 했습니다...ㅠㅠ 어떤 강의를 들을까 고민하다가, 사수님이 추천해준 The Red 들의 강의를 찾아보았고, 그 중에 지금의 내가 가장 흥미를 가지고 있는 TDD 와, 코드리뷰, 레거시 코드 리펙토링과 관련된 주제를 다루는 강의를 찾아서 보게 되었습니다 결론적으론, 굉장히 흥미롭게 볼 수 있던 강의였고 3가지 큰 분야를 딥하게 다루지는 않지만, 11번가 MSA 마스터(?) 백명선님과 TDD의 사나이(?) 최범균님의 전문성있는, 실전 압축 지식을 넓고 가볍게 필요한 부분만 들을 수 있어서 좋았습니다. 가장 크게 배웠던 건, 레거시 코드의 리펙토링 진행과정과 통합테스..

5. JAVA 기본 타입 vs 참조 타입 (with 래퍼클래스를 사용해야할 때) ➡️ Integer(Wrapper Class) 보다 int(기본 타입)

저는 래퍼클래스가, Null을 처리할 수 있기 때문에, 더 범용성이 좋고, 유용하다고 생각했습니다.. 하지만, 온보딩 과제를 진행할때, 매개변수를 사용할 때 래퍼클래스보단, 기본타입을 이용하는게 좋다는 피드백을 받았고, 이번 포스트이에는, 그 이유에대해서 생각해본 것을 정리해볼까 합니다..! [목차] JAVA 자료형 종류와 차이점 (기본타입 자료형 vs 참조타입 자료형) Wrapper Class란 Wrapper Class 특징 String의 생성과 비교 방식 Wrapper Class를 사용해야할 때 📌 Java의 자료형 2가지 1. 기본 타입 자료형 (Primitive Type) int, boolean, double, float 등등 2. 참조 타입 자료형 (Refernce Type) Integer, B..

4. 정규표현식이란, java 정규식 구성 및 가이드 + [JAVA에서 성능 높이기]

칭찬받은 정규표현식 공부해보자구~ ✨정규표현식이란 - 편집기의 패턴매칭을 위해 탄생한 문자열 패턴 매칭기 - 특정패턴을 이용해 문자열을 찾을 수 있게 표현한 것입니다. "정규표현식이란, 특정 문자열을 찿기위한 패턴을 기록한 것" 으로 이해할 수 있을 것 같습니다. 그럼 이제 패턴을 표현하는 방법? 패턴을 작성하는 방법에 대해 알아봅시다 💡 정규표현식의 표현 방식 아래의 순서로 정규표현식을 표현합니다 정규표현식(regex) = 패턴구분자 시작 + 작상할 패턴 + 패턴구분자 끝 + 패턴 변경자 (ex /패턴/ g) 👏🏻 정규표현식의 표현방법 [메타문자 - 수량자] 굉장히 많지만, 메타문자와 수량자에 대해서만 이야기 해보자 💡 메타문자 (Meta Character - 문자를 나타내는 문자) 정규표현식을 제어하..

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