객체 지향 SOLID 원칙 - OCP
·
개발이야기/Design Pattern
OCP 를 한문장으로 정리하면 아래와 같습니다.   확장에 대해서는 개방적이고 수정은 폐쇄적이어야 한다. OCP 자료 참고한 영상이 있는데 OCP 원칙을 예시로 IT 기업인 애플로 비유했을 때 이해가 확 되었다.애플의 제품들을 보면 다른 기기와 호환성을 별로 였지만, 애플 기기간에 호환성을 최고이다 .즉 아이폰, 맥북, 아이패드, 에어팟의 호환성은 애플만의 감성 영역이고 생태계를 잘 구성해놓은것 같다.어디까지 비유이지만 수정에 대해서 닫혀 있어야 하고 확장에는 열려있어야 한다면 생각해봐야 하는 게추상화와 다형성이 아닐까 한다. OCP가 어려운 내용은 아니고 변경이 될만한 부분에 대해서 생각해보고 인터페이스 or 추상클래스로 추상화를 한 후 다형성을 이용한 확장을 가능하게 하는 설계의 원칙이다. OCP 를..
객체 지향 SOLID 원칙 - SRP 편
·
개발이야기/Design Pattern
객체 지향 SOLID 원칙은 코드를 작성하면서 지켜야할 객체 지향 몇가지 원칙중 하나입니다. 디자인 패턴을 공부할때 SOLID 원칙에 기반해서 패턴이 생성되기 때문에 필자는 이 참에 "객체 지향 기본을 잘 공부해야겠다" 라고 생각하고 공부를 했습니다. SRP를 하나의 문장으로 정의하면 아래와 같습니다.  한 클래스는 오직 하나의 변경 이유만을 가져야 합니다. 이는 객체 지향 프로그래밍(OOP)에서 클래스를 설계할 때, 하나의 클래스에 모든 기능을 넣는 '갓 클래스'를 경계하는 원칙입니다.처음에 저게 가능할까? 라는 생각을 했었습니다. 물론 개발하면서 객체 지향 원칙을 모두 다 지켜가며 할수는 없습니다. 다만 한 클래스의 변경 이유는 하나만 가져야 한다니 당황을 했습니다. 그래도 SOLID는 프로그래밍 신..
디자인 패턴에 대한 필요성과 이해
·
개발이야기/Design Pattern
0. 필자의 디자인 패턴을 배우는 목적  회사에서 여러 프로젝트를 진행하면서 내가 작성한 코드가 더이상 나이질 기미가 안보이고 점점 스파게티로 코드 복붙 작성이 되는것 같아 어떻게 하면 고객 요구사항에 유연하게 대처하면서 코드 품질을 올릴수있을까를 생각하다고 예전 부터 공부를 하고 싶어했던 디자인 패턴 책을 구매를 하고 스터디를 하게 되었다 지금껏 읽어 왔던 개발 서적들은 저자가 말하고자 하는 바 자체를 이해하지 못하여 끝까지 읽기가 어려웠다. 물론 내 경험과 역량 부족이지만 지금까지 쌓아왔던 내 개발 경험에 비추어 보았을때는 글에서 소개되는 내용이 왜 필요하고 어떤점이 좋은지가 명확하게 판단하기가 너무 힘들었다. 그러다가 좀 더 쉽게 읽을수 있는 책을 찾다가 헤드 퍼스트라 디자인 패턴 책을 찾았다.  ..
Lodash, 더 쉽고 효율적인 코드 작성하기
·
개발이야기/Node.js
자바스크립트/타입스크립트 활용하여 서버를 개발 하면서 반복되는 작업이나 복잡한 데이터 처리로 인한 코드가 길어지는 현상을 어떻게 해결 할까? 를 늘 고민을 하고 있었습니다.Lodash는 제가 하고 있는 고민을 어느 정도 해결해주는 라이브러리입니다.자주 사용하는 함수를 예시와 함께 정리하도록 하겠습니다.데이터 검사_.isEmpty : 값이 비어있는지 확인_.isEmpty 함수는 Lodash 라이브러리에서 제공하는 기능 중 하나로, 입력된 값이 비어있는지 여부를 확인해주는 함수입니다.이 함수는 다양한 유형의 값들에 대해 사용할 수 있습니다. 예를 들어, 배열, 객체, 문자열 등에 대해서 비어있는지 여부를 판단합니다._.isEmpty 함수는 값이 비어있을 경우 true를 반환하고, 값이 존재할 경우 false..
Redis를 활용한 동시성 문제 해결
·
개발이야기
최근이 실무에 일을 하면서 많은 트래픽에 의한 동시성 처리에 대한 이슈가 올라 온 적이 있는데이참에 분산 락에 대해서 정리를 하면서 이 부분을 어떻게 해결을 했는지 공유 드리려고 관련 글을 작성하려고 합니다.  동시성에 의한 문제는 왜 생길까요 ? 분산 시스템 환경에서 애플리케이션을 개발하는 것은 백엔드 개발자의 일상이 되었습니다.여러 서버가 동시에 같은 데이터에 접근하고 변경하는 상황에서 데이터의 일관성을 유지하는 것은 매우 중요한 일입니다.만약 장애가 생겼다면 크리티컬한 클레임 까지 받을 수 있습니다.여러 서버 간에 공유 자원에 대한 접근을 조율하여 데이터 경쟁 상태 (Race Condition) 및 불일치 문제를 해결하는 데 이 때 사용했던 개념이 분산 락 입니다. 여러 대의 분산 된 서버 or 서..
[BoJ] - 1043번 거짓말
·
알고리즘/백준
문제를 풀면서 1시간 정도 고민을 했었고 1시간 구현해서 풀어낸 문제이다. 골드 4이지만 난이도가 막 어렵지는 않았던 것 같다. 오랜만에 골드 4를 스스로의 힘으로 풀어서 기분이 좋았다 문제 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다. 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다. 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다. 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 것이다. 따라서 이런 사람들이 파티에 왔을 때는, 지민이는 진실을 이야기할 수 밖에 없다. 당연히, 어떤 사람이 어떤..
cafe-jun12
'분류 전체보기' 카테고리의 글 목록 (2 Page)