개발

· 클린코드
자료 추상화 변수를 비공개(private)로 정의하는 이유는 코드들이 변수에 의존하지 않게 만들고 싶어서다. 그렇다면 어째서 get, set 함수는 당연하게 외부에 공개(public)하는가? 알다시피 변수를 private로 설정한들 조회(get), 설정(set) 함수를 public으로 제공한다면 의미가 없는 샘이다. 변수 사이에 함수를 넣는다고 구현이 저절로 감춰지지는 않는다. 구현을 감추려면 추상화가 필요하다! 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스이다. 만약 휴대폰 배터리가 15% 이하일 때 절전모드를 작동한다고 해보자. public interface Phone { Double getBatteryPercent(); } if (phone...
· Java
디자인 패턴(design pattern)이란? 소프트웨어를 설계할 때 특정 맥락에서 발생하는 문제들을 해결할 수 있는 해결책을 유형별로 정리한 것이 디자인 패턴(design pattern)이다. 디자인 패턴은 공통적인 소프트웨어 문제를 설계할 때 재 사용할 수 있는, 검증된 청사진을 제공해주고, 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다. 람다를 이용하면 이전에 디자인 패턴으로 해결하던 문제를 더 쉽고 간단하게 해결할 수 있다. 또한 람다 표현식으로 기존의 많은 객체지향 디자인 패턴을 제거하거나 간결하게 재구현할 수 있다. 하지만 모든 코드에서 람다 표현식을 사용하는건 적절하지 않다. 클래스에 상태가 있거나 여러 메서드를 정의하는 등 복잡하다면 기존 패턴을..
· ETC
개발중에 진행되어야 하는 부분을 TODO기능을 사용해 나중에 확인할때가 있다. 하지만 모든 확인사항을 TODO로 사용하기엔 의미상 맞지도 않을 뿐더러 같은 TODO라도 다른 의미라면 구분하기 어렵다. 현재 로그인시 회원 데이터 동기화(레거시 -> 새로 개발한 서비스)하는 코드를 짜고있는데 나중에 동기화가 다 되었을때 동기화 하는 부분에 코드를 모두 지우든 주석처리하든 하려고 한다. 그래서 TODO 기능을 사용해 나중에 동기화가 완료된 후 제거해야할 코드를 구분하려고 한다. 인텔리제이 기준이다. 나는 LEGARCY라는 패턴을 사용해서 사용할 것 이다. 글자 배경, 색도 모두 변경할 수 있다. 요런식으로 사용해서 TODO를 확인하면 한눈에 구분하기 편하다
· 회고
나는 이제 30살이 된 평범한 개발자이다. 나의 꿈은 열심히 공부하고 일하고 많은 경험으로 좋은 개발자가 되고 내가 살았던 이야기를 책으로 내고 싶다. 물론 내 블로그 글들이 정리가 개판이고 다른 개발자들은 다 아는 내용이겠지만 더 발전할 것이고 회사 사람들과 아직 모르는 개발자들과 공유하고 싶고 최대한 이해하기 쉽도록 정리하도록 정리하고 있다. 그것들을 위해 블로그를 시작했다. 이제 블로그를 한지 3개월 정도밖에 안되었지만 사람들이 어떤 주제에 관심이 많은지 어떤 키워드로 검색을 자주 하는지를 알게 되었다. 어느덧 누적 접속자가 3000명이 넘어간다. 어떤 사람이 볼 땐 적은 수이겠지만 나에게는 처음 공유를 해보는 입장으로써 신기할 따름이다. 나는 2019년 여름부터 다니넌 회사를 2021년에 퇴사하였..
· ETC
애자일 방법론이란? Agile은 기민한, 날렵한이란 뜻으로 좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다. 앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 프로세스 모델 방식이다. 미리 정해진 몇 개의 단계에 따라 엄격한 순서대로 이루어지는 일직선의 과정인 폭포수의 프로세스와는 비교가 많이되는 반대의 개념이다. 애자일 방법론의 진행 과정 애자일 방법론은 계획 → 설계(디자인) → 개발(발전) → 테스트 → 검토(피드백) 순으로 반복적으로 진행된다. 계획을 세운 후 다음 단계까지 기다려서 절차대로 진행하는 폭포수 모델과 달리 먼저 진행 후 분석, 시험, 피드백을 통하여 개선하여..
beekei
'개발' 태그의 글 목록