전체 글 252

이직 회고 : 신입공채 최종면접 불합격 하고 나서

I. 들어가며 금번 HR솔루션을 필두로 하는 기업공채 최종면접에서 불합격하였다. HR관련 나의 관심과 지식은 어느정도 합격을 기대했다. 하지만 결과는 그렇지 않았다. 합격 후 내 모습에 기대가 없었다면 상실감도 없었겠지만, 기대가 있었기에 제법 충격은 상당했다. 또한 본 채용과정을 밟아가며 기회비용을 생각해도 마음은 편치않다. 금번 불합격 발표는 마치 예전에 오랜기간 준비했던 시험을 불합격했던 날의 기억을 생생하게 느끼게 해주었다. 차후에 한번 더 이러한 시간과 비용을 사용한다면, 아깝지 않은 결과로 만들기 위해서 회고한다. II. 면접 전형 회고 1. Liked : 좋았던 점은 무엇인가? 6월부터 공부하며 획득한 자격증은 지원서 작성에 요긴하게 쓰였다. 정보처리기사와 HRM전문가 두개는 지원서를 작성할..

[FiveLinesOfCode] 6장: 유사한 코드 융합하기

6장 데이터 보호 의문점 학습목표 ‘getter와 setter를 사용하지 말것’ 으로 캡슐화 강제하기란? ‘getter와 setter 제거하기’ 로 getter제거하기란? ‘공통 접사를 사용하지말것’을 위한 ‘데이터 캡슐화’ 사용이란? ‘순서 강제화’로 불변속성제거란? 키워드 6.1 getter없이 캡슐화 하기 정의 Boolean 이 아닌 필드에 getter나 setter 사용하지 말것 즉 직접할당하거나 반환하는 메서드를 의미함 getter 존재시 캡슐화를 해제하고 불변속성을 전역적으로 만듬 객체 반환 후 반환받은 곳은 객체를 다른곳어 더 전달이 가능하고 이것은 제어 불가능 setter 존재시 setter수정시 시그니처 유지할 수있는 또 다른 간접적 레이어 도입할 수있음 실제로는 setter를 통한 새로..

[FiveLinesOfCode] 5장 유사한 코드 융합하기

5장 유사한 코드 융합하기 의문점 성능 최적화는 프로파일링 도구 사용해서 가이드 해야함 (p.112) 인터페이스는 사용구의 일반적인 원입니다. 학습목표 유사 클래스 통합하기란? 조건부 산술로 구조 노출하기란? 간단한 UML 클래스 다이어그램 이해하기란? ‘전략 패턴 도입’으로 유사코드 도입하기란? ‘구현체가 하나뿐인 인터페이스 만들지 말것’으로 어지러움 정리하기 키워드 1. 유사한 클래스 통합하기 5.1 개요 updateTile() 은 우선 else 사용금지 규칙 위반함 → 첫번째 단계로 || 에 대해서 하나의 함수로 도입해야함 // Stone FallingStone의 유일한 차이점 2개 class Stone implements Tile { isAir() { return false; } isStone()..

10년 20년이 지나도 여전히 유효한 개발기술 (with ChatGPT4)

Mo_b!le 개발자 세상은 기술의 라이프사이클이 짧잖아? 그럼에도 불구하고 일부 기술과 지식은 10년 20년이 지나도 여전히 유효한 것들은 무엇이 있어? ChatGPT 개발자의 세계에서 기술의 라이프사이클이 짧은 것은 사실입니다. 새로운 기술과 도구들이 지속적으로 등장하고, 기존의 것들은 업데이트되거나 때로는 사용되지 않게 됩니다. 그럼에도 불구하고, 몇몇 기술과 지식은 시간이 지나도 여전히 중요하고 유효합니다. 여기 몇 가지 예시를 들어보겠습니다: 1. 기본적인 프로그래밍 원리 알고리즘과 자료구조: 효율적인 코드를 작성하는 데 필수적인 기본 지식입니다. 디자인 패턴: 소프트웨어 설계에 있어서 검증된 솔루션들입니다. OOP (객체 지향 프로그래밍): 여전히 널리 사용되는 프로그래밍 패러다임입니다. 2...

[FiveLinesOfCode] 4장 타입코드 처리하기

4장 : 타입코드 처리하기 의문점 enum 을 클래스로 굳이 다 나눠야함? → 복잡도에 따라서 선택! 대출부분 학습목표 if 문에서 else를 사용하지말것과 switch문을 사용하지 말것으로 ‘이른 바인딩’ 제거란? ‘클래스로 타입 코드 대체’, 그리고 ‘클래스로의 코드 이관’으로 if 문 제거하기란? ‘메서드 전문화’로 문제가 있는 일반성 제거하기란? ‘인터페이스에서만 상속’받을 것으로 코드 간 커플링(결합) 방지하기 ‘메서드의 인라인화’ 및 ‘삭제 후 컴파일하기’를 통한 불필요한 메서드 제거 키워드 1. 간단한 if문 리팩터링 4.1 규칙 : if문에서 else를 사용하지 말것 정의 프로그램에서 인식 하지 못하는 타입인지를 검사하지 않는 한, if문에서 else사용하지 말것 if-else 를 사용하면..

[FiveLinesOfCode] 3장 : 긴 코드 조각내기

3장 : 긴 코드 조각내기 의문점 불변속성(invariant), 가정설정문(assertion) 디자인패턴 → 상속보다는 컴포지션, 컴포지션이 컴파일 오류 발생 만듬? 학습목표 다섯줄 제한(FIVE LINES)으로 지나치게 긴 메서드 식별하기란? 세부사항을 보지 않고 코드 작업하기란? 메서드 추출(EXTRACT METHOD)로 긴 메소드 분해하기란? 호출 또는 전달, 한가지만할것(EITHER CALL OR PASS)으로 추상화 수준에 맞추기란? if 문은 함수의 시작에만 배치로 if문 분리하기란? 키워드 DRY, KISS 지침을 따른경우라도 코드는 여전히 혼란스러움 1. 다섯줄 제한(FIVE LINES)으로 지나치게 긴 메서드 식별하기란? 정의 {} 제외 if, for, while, 세미콜론끝나는 모든것은..

[FiveLinesOfCode] 2장 : 리팩터링 깊게 들여다보기

2장 : 리팩터링 깊게 들여다보기 의문점 - 불변속성(invariant), 가정설정문(assertion) - 불변속성? - 객체가 정상적으로 작동하기 위해 값, 식, 상태의 일관성 보장하기위해 항상 참이 되기 위한 조건 - 기름양은 0 ≤ oil ≤ 100 사이여야만 함 - 이 범위를 벗어나면 안되는 조건을 불변속성이라 함 - - 디자인패턴 → 상속보다는 컴포지션 학습목표 가독성을 통한 의도 전달이란? 유지보수성 개선을 위한 불변속성(invariant) 지역화란? 개발속도 향상을 위한, 추가(addition)를 통해 변경가능하게 만들기란? 리팩터링의 일상 업무화란? 키워드 1. 가독성을 통한 의도 전달이란? 2. 유지보수성 개선을 위한 불변속성(invariant) 지역화란? - 가독성 및 유지보수성 향상..

[FiveLinesOfCode] 1장 : 리팩터링, 리팩터링 하기

1장 : 리팩터링 리팩터링 하기 의문점 XP에서 스파이크 시작전 핵심기능 간단구현 레드 - 그린 - 리팩터 반복 TDD 를 처리를 기술한 방법 자동화된 테스트 학습목표 리팩토링의 구성요소는? 일상 업무에 리팩토링 도입이란? 리팩토링에 있어 안전의 중요성이란? 키워드 리팩토링의 구성요소는 스킬,문화,도구 로 구성되어있다 제반 정의 좋은 코드? : 사람이 읽기 쉽고, 유지보수가 용이하며, 의도한대로 잘 작동하는 코드 리팩토링? : 기능을 변경하지않고, 코드의 가독성과 유지보수가 쉽도록 코드를 변경하는것 리팩토링의 이유 가독성 높이면 → 기능구현 시간 확보 (경제성) 유지보수가 용이 → 버그가 줄어들고 수정이 쉬워짐 생각하기 편하다 → 한번에 많은 것을 기억해야할수록 지침, 스킬 : 무엇을 리팩토링 할 것인가..

TIL : Extra-3(.class, stringBuilder)

I. .class What (정의) : 클래스나 타입의 메타데이터와 속성을 자바 런타임 환경에서 나타내는 역할이다. Why (존재이유) : Class객체에 접근하는것으로, 클리스의 정보(필드, 메소드, 생성자, 기타 세부정보)를 제공하는것이다. 그리고 동적으로 클래스를 조작하고 사용할 수있다. When (역사적 등장배경) : 자바 언어 초기부터 존재한 것으로서, 고급 자바기능과 프레임웍의 기초를 형성함 How (방법) : Class myClass = MyClass.class; e.g. (비유) : .class 를 건축에서 설계도 프린트 라고 생각하자! 건물의 구조와 특성은 건물(클래스)보다는 건물의 설계도(메타데이터)가 더 바람직하다. II. .stringBuilder java에서 문자열에서 일부 문자를..

TIL : Extra-2(enum, hashMap)

I.Index 1. enum 2. hashMap II. enum 자바 백엔드 개발 중 기존 회사의 코드에 enum 을 사용하는것을 보았다. 나는 사용해본적이 없어서 당황스러웠다. 기존 방식을 차용해서 새로운 기능 개발에 사용했지만, 그 필요성과 사용법은 아직 구체적으로 모른다. What (정의) : 서로 연관된 상수들의 집합을 의미한다. Enum은 열겨형(enumerated type)을 의미한다. 즉 하나이상의 상수 값을 정의하고, 그 값을 변수처럼 사용할 수있는 자료형이다. (과거 final static string 같은 방식으로 상수를 정의하는것과 달리) Why (존재이유) : 보다 구조적이고 의미있는 방법으로 다룰 수있게 해줌 -> 결국 상수를 단순히 정수로 보지않고, 객체지향적으로 객체화 해서 관..