전체 글

✉️ seohui.duck.jo@gmail.com
· 개발서적
"인공지능 시대가 도래하면 정말 사람들은 일자리를 잃게 될까?" chatGPT가 세상에 나오고 나서 개발자들 사이에서 가장 화제가 되었던 주제입니다. 오늘 소개해드릴 책은 그 질문에 대해 정확한 답은 아니더라도, 생각해볼만한 거리들을 던져줍니다. 이 책은 단순히 AI 기술 자체에 대한 설명에 머무르지 않습니다. 기술적 발전의 과정뿐만 아니라 그에 따른 윤리적, 사회적 딜레마를 다루며, AI가 가져올 긍정적인 측면과 함께 심각한 부작용을 균형 있게 설명하고 있습니다. 예를 들어, AI의 자동화가 가져올 산업 구조의 변화와 일자리 문제, 프라이버시 침해, 그리고 알고리즘의 편향성 등이 주요한 논점으로 다루어집니다. 특히, AI가 어떻게 인간의 의사결정 과정에 영향을 미칠 수 있는지에 대한 논의는 깊은 인상을..
· 레퍼런스
Git은 코드 작업에 있어서 너무나도 중요한 도구라 사람들이 기술 스택이나 이력서에 아예 언급조차 하지 않는다는 점을 눈치채셨나요? 이미 알고 있을 거라는, 또는 적어도 필요한 만큼은 알고 있을 거라는 가정이 깔려 있죠. 하지만 정말 충분히 알고 있나요? Git은 버전 관리 시스템(VCS)입니다. 코드를 저장하고 변경하며 다른 사람과 협업할 수 있게 해주는 보편적인 기술이죠. 개발자로서 우리의 일상은 코드를 읽고, 작성하고, 검토하는 데 집중되어 있습니다. Git은 우리가 사용하는 도구 중 가장 중요한 것 중 하나라고 할 수 있습니다. Git의 기능과 특징을 마스터하는 것은 개발자로서 자신에게 할 수 있는 최고의 투자 중 하나입니다. 그럼 시작해 봅시다. 기초 다지기 Git을 제대로 배우지 않으면 계속해..
· 레퍼런스
데이터 지속성(Data persistence)은 대부분의 애플리케이션에서 매우 중요합니다. 애플리케이션이 데이터를 지속적으로 저장할 필요는 없지만, 비디오 게임, 소셜 미디어 플랫폼 또는 블로깅 웹사이트와 같은 다양한 분야의 대규모 애플리케이션에서는 흔히 사용하는 관행입니다. Java에서 데이터 지속성은 시간이 지남에 따라 많은 관심을 받았으며, 눈에 띄는 발전을 이뤄왔습니다. 처음에는 JDBC API를 직접 사용하는 것에서 시작하여, 점점 더 추상화되고 개발자가 사용하기 쉬운 표준화된 메커니즘으로 발전해왔습니다. 이러한 진화 과정에서 많은 지속성 기술이 개발되었으며, 이들 간의 차이는 종종 개발자들 사이에서 혼란을 일으킬 수 있습니다. 이러한 기술로는 Hibernate, JPA, Spring Data ..
· 레퍼런스
개발자로서 우리는 항상 생산성을 높이고 소프트웨어의 품질을 향상시킬 방법을 찾고 있습니다. 그리고 IDE를 마스터하는 것 - 단축키, 도구를 이해하는 것 - 이 여정의 중요한 부분입니다. 이 글에서는 IntelliJ IDEA 플러그인에 대해 다루겠습니다. 생산성을 극대화하고 코드를 완성도로 향상시킬 수 있는 5가지 무료 플러그인을 탐구해 보겠습니다. 1. Test Data 단위 테스트를 작성할 때, 샘플 데이터를 생성해야 하는 경우가 많습니다. 이 플러그인은 텍스트, UUID, 숫자, 날짜 및 시간, JSON, CSV, SQL과 같은 사용자 정의 형식을 포함한 다양한 무작위 데이터를 생성할 수 있는 작업을 추가합니다. Test Data - IntelliJ IDEs Plugin | MarketplaceTh..
· 레퍼런스
If-else 문은 흔하지만 남용되면 복잡하고 유지보수가 어려운 코드로 이어질 수 있습니다. 이 글에서는 Java Spring Boot 프로젝트에서 if-else 문을 줄이기 위한 다양한 전략을 탐구하여 코드를 더 모듈화하고, 유지보수하기 쉽고, 읽기 쉽게 만드는 방법에 대해 설명하겠습니다.  If-Else 문을 줄이는 전략전략 패턴(Strategy Pattern)Enum 사용다형성(Polymorphism)람다 표현식과 함수형 인터페이스명령 패턴(Command Pattern)가드 절(Guard Clauses)1. 전략 패턴 전략 패턴은 알고리즘의 가족을 정의하고, 각각을 캡슐화하며, 이들을 상호 교환 가능하게 만듭니다. 여러 가지 방법으로 특정 작업을 수행해야 할 때 유용합니다.   예제: 결제 처리 ..
· 레퍼런스
간단히 말해, 두 데이터베이스의 주요한 차이점은 기본 인덱스와 보조 인덱스를 구현하고, 데이터를 저장하고 업데이트하는 방법으로 요약됩니다. 이에 대해 더 살펴보겠습니다. 기초인덱스는 데이터베이스가 페이지로 구현한 노드 계층을 통해 키를 검색할 수 있게 해주는 데이터 구조(주로 B+ 트리)입니다. 트리 순회는 결과가 없는 페이지를 제거하고 결과가 있는 페이지를 좁혀나가는 과정을 거칩니다. 이 과정은 키가 존재하는 리프 페이지가 발견될 때까지 계속됩니다.  리프 노드 또는 페이지에는 정렬된 키와 그 값의 목록이 포함됩니다. 키가 발견되면 해당 값이 반환되고, 페이지는 데이터베이스 공유 버퍼에 캐시되어 이후 쿼리가 동일한 페이지의 키를 요청할 때 유용하게 사용될 수 있습니다. B+ 트리 인덱스의 키는 인덱스..
· 레퍼런스
코더로서, 여러분은 멋진 기술을 가지고 있고 다른 사람들의 생각을 그대로 실행함으로써 돈을 얻을 수 있습니다. 이번에는 여러분만의 것을 만드는 건 어떨까요? 소프트웨어 비즈니스를 시작하는 데 관심이 있다면, 몇 가지 실용적인 조언을 해드리겠습니다.   Step 0: 간단하게 해라처음 시작할 때, 내가 모르는 것이 무엇인지 잘 몰랐습니다. 엔지니어로서 제 실력은 사람들이 사용할 제품을 만들기에 충분하다고 생각했습니다만, 틀렸습니다! 몇 가지 중요한 단계를 놓치고 말았습니다.내가 만들고 있는 것을 원하는 사람들이 있는가?비슷한 제안으로 성공한 다른 기업들이 있는가?내 제안이 무엇인가?이 제품을 어떻게 마케팅 할 것인가?아이디어에서 최소 실행 가능한 제품(MVP)으로 전환하는 방법을 4단계로 나누겠습니다. S..
· 레퍼런스
1. Documantic[https://www.documatic.com/]Documa는 프로젝트 문서를 작성하는 과정을 줄여줍니다.API 참조에서 사용자 가이드에 이르기까지 이 플랫폼은 코드를 쉽게 문서화할 수 있는 유연한 템플릿과 사용자 친화적인 편집 도구를 제공합니다.프론트 및 백엔드 모두에게 적합합니다. 2. transform[https://transform.tools/]ransform은 디자이너와 개발자 모두에게 강력한 도구입니다.사진 압축, SVG 최적화 및 색상 수정을 위한 도구를 제공해 효율성을 높입니다. 3. Convertio[https://convertio.co/]Convertio는 파일 형식을 처리하는 작업을 저장합니다.이 프로그램은 300개 이상의 파일 유형을 지원하여 사진, 문서, ..
· 레퍼런스
7. 검색 전 데이터 존재 여부를 확인하지 않기Bad Practice: 객체를 가져오기 전 map에 id가 있는지 미리 확인합니다. 존재하지 않는다면 null 값을 반환하기 때문에 미리 체크하는 것은 불필요합니다.public static String findNameById(Map idNameMap, int id) { if(idNameMap.containsKey(id)) { return idNameMap.get(id); } else { return "Unknown"; }}Good Practice: 즉시 map에서 가져온 후 null인지 아닌지 체크하여 존재 여부를 확인합니다.public static String findNameById(Map idNameMap, int id) { S..
· 레퍼런스
1. Nulls와 OptionalsBad Practice: 메서드에서 바로 null을 리턴하는 건 NPE를 유발할 수 있습니다.public String getString() { return null;}Good Practice: null에 대한 명확한 핸들링과 에러 방지를 위해 Optional을 사용합니다.public Optional getString() { return Optional.empty();} 2. String.valueOf()로 String 변환Bad Practice: + 연산자를 사용해 문자열을 합칩니다.double d = 3.14525;String s = "" + d;Good Practice: 내장 메서드를 활용합니다.double d = 3.14245;String s = String.val..
둘기덕
덕토피아