본문 바로가기
728x90
반응형

TIL147

실무에서 바로 쓰는 clean code 실무에서의 클린 코드란? => 유지 보수 시간의 단축 => 짧은 코드 x , 원하는 로직을 빨리 찾을 수 있는 코드 흐름 파악이 어렵고, 도메인 맥락이 표현이 안 되어, 동료에게 물어봐야 알 수 있는 코드는 개발할 때 병목이 되고 유지 보수할 때 시간이 오래 걸리며 시간이 지나면 기능을 추가하기 어렵다. 유저입장에서도 쾌적하지 못하다 시간 = 자원 = 돈 남이 짠 코드에 기능을 붙이는 일을 개발자의 90%가 함 하나의 목적인 코드가 흩뿌려져 있으면 나중에 기능을 추가할 때 스크롤을 위아래로 움직이면서 찾아야 함 하나의 함수가 여러가지 일을 하는 것도 좋지 않음 (코드를 세부적으로 읽어야하고 코드 추가 및 삭제 시간도 걸림) -> 하나의 기능, 하나의 함수! (이때 변수명을 바꾸어 더욱 직관적으로 알기 쉽.. 2022. 9. 12.
Software Testing Software Testing Software Testing 이란? : 수많은 엄밀한 검증 작업을 거치는 것 나의 코드(input 과 output을 생각하면서 만듦) -> 기대하는 결과 -> Test -> success, faliure 제대로 된 소프트웨어를 개발했는가? 소프트웨어를 제대로 개발했는가? 왜 테스트 해야하는가? 결함을 확인하기 위해서 에러의 사전 방지를 위해서 시간 절약을 위해서(우리 회사가 들이는 인적 자원들을 최대한 아껴야 함, 서비스적인 시선) 코드 구조 개선 (리펙토링에 능해짐) 품질 개선 나의 코드를 통해서 훌륭한 품질의 프로그램을 내놓거나 개선되는 것 코드의 확장성을 가지게 됨 소프트웨어의 개발은 70년대에 이어져 있어서 다른 공학보단 짧은 편 짧은데 비해 개발의 방법론적인 처음.. 2022. 8. 31.
채용되는 개발자 위코드 1차 프로젝트를 마치고 1시간 가량의 짧은 강연이 있었다 이를 짧게나마 정리하고 회고하고자하는 블로깅 :) 채용되는 개발자는? 회사는 원하는 환경 조건이 있다 바로 우리와 맞는 사람이 있는지! 개발자라면 JD 채용 공고는 매일 봐야한다 특히나 내가 들어가고 싶어하는 회사는 매일 봐야한다 개발자의 업무는 내가 관리하고, 만들고, 함께 성장할 수 있는 회사에 들어가 업무를 할 때 그때부터 시작한다 이때 중요한 것은 보다 치열하게 일하는 개발자가 되어야한다는 것이다 관련해서 역량(skill)이라는 키워드를 빼놓을 수 없는데 회사마다 다르지만 결국 회사는 회사의 성장을 만들어내는 인재가 필요하다 치열하게 일하는 것이란 내가 내 업무에 한계를 굳이 생각지 않고 내가 할 수 있는 모든 것을 한 후 그 경험을.. 2022. 8. 28.
Redux - Redux Redux 자바스크립트 앱을 위한 예측 가능한 상태 컨테이너 단방향 데이터 흐름을 이용해 예측 가능하고 일관적인 상테 컨테이너 역할을 제공하는 라이브러리 Flux 패턴에 영감을 받아서 Dan Abramov가 개발 Flux는 하나의 패턴, 이 Flux 패턴을 쉽게 적용할 수 있도록 자바스크립트로 구현한 구현체가 redux React 또는 다른 View 라이브러리들과 함께 사용할 수 있음 Redux 3가지 원칙 1. 진실은 하나의 소스로 부터 -> 애플리케이션의 모든 상태(state)는 하나의 저장소(Store) 안에 하나의 객체 트리 구조로 저장됨 -> 여러 개의 저장소(Store)를 관리하는 것이 아니라 단, 하나의 자바스크립트 객체로만 데이터를 저장 2. 상태(State)는 읽기 전용이다 -> 상태는 .. 2022. 8. 28.
Redux - Design Patten Design Patten : 검증된 해결책 패턴 === 되풀이 되는 사건이나 물체의 형태 디자인 패턴 === 설계 간 자주 발생하는 문제에 대한 모범 답안 프로그램을 개발하면서 생기는 문제점들에 대해서 해결할 수 있는 방법을 도출하고 그를 패턴화 해둔 것 바퀴를 재발명 하지마라 ( 재발견하지 말고 이미 만들어져있는 게 있다면 그것을 써라) 이미 여러사람들에 의해서 검증된 해결 방안, 이를 적용하면 코드를 효과적으로 개선할 수 있음 디자인 패턴을 활용하면 상대적으로 저수준의 문제들은 패턴을 이용해서 해결하면서 고수준의 문제에 집중할 수 있음 효율적인 소통 방식 개발을 하면서 원활한 소통을 위해서는 체계적인 규칙과 용어가 필요 디자인 패턴을 사용하면 매번 모든 디테일한 사항들을 장황하게 설명할 필요 없이 약.. 2022. 8. 28.
관심사의 분리 / Custom Hook 개발을 하면서 마주하는 고민들 코드를 작성했는데 기획, 디자인이 변경되고 요청 사항들이 추가된다. 코드를 수정해야하는데 기존의 코드가 복잡해서 이해하고 수정하기 어렵다 지금까지 만들었던 모든 코드를 다시 엎어야 하나? 이의 해결책은 바로 관심사의 분리이다 관심사의 분리 관심사의 분리란? 각각 관심사에 따라 코드를 분리하는 기법 일상 생활에도 여러가지 고민과 걱정들을 한번에 처리하려면 어렵다 한번에 한 가지 걱정만 하면 쉽게 해결할 수 있음 이처럼 개발에서도 코드가 하나의 걱정만 하도록 단위를 나눠서, 단위별로 하나의 걱정만하게 하는 것 특정한 변화에 대해서 대응하기 위해서 읽고 이해하고 수정해야하는 코드의 단위가 줄어들게 됨 => 유지 보수에 용이 우리의 일상 생활에서도 분업이라는 의미로도 생각됨 관심사.. 2022. 8. 28.
aws 란? aws 란 아마존 웹서비스의 약자 아마존에서 제공하는 클라우드 서비스 탄생 배경 기존에는 온라인 중에서 서점만 서비스를 하는 회사였음 소비자의 배송부터 주문까지 하자 :fb 방식 이러면서 온라인 규모도 커지고 사용자가 많아짐 -> 사용자가 많아지면 트래픽이 생기기 쉬움 -> 우리 서버가 다운되지 않게 노하우가 생김 -> 이런 노하우를 상업화 하자 -> aws 사업 시작 aws 사용하는 이유 제일 많이 씀 (네이버 등) cloud Market 선구자이자 리더 1,000,000 Active Users 클라우드의 컴퓨팅의 특징과 장점을 그대로, 그 이상으로 제공 뛰어난 유연성 확장성 및 탄력성 우수한 보안성 안정성 리전 전세계에 있는 데이터센터의 기준이 되는 물리적 위치 사용자와 리전이 가까울 수록 네트워크 .. 2022. 8. 23.
Cloud Computing Services Cloud Computing Services 운영 서버와 아키텍쳐 운영 서버 (production server) 우리가 개발하고 있는 서버와 다름 ( 이건 테스트 서버에 가까움) 우리가 개발하는 상품을 운영하고 배포하는 서버를 이야기 함 개발이나 테스트 목적이 아닌 실제 사용자를 대상으로 서비스 하는 서버 운영서버의 아키텍쳐 1. 단일 서버 구조 클라이언트 - 서버(애플리케이션, 데이터 베이스) 가장 단순하면서 기본적이고, 구축하기 간단한 서버 구조 전체 서비스 장애 발생 가능성이 높음 (서버 자체에 문제가 생기면 전체적인 서버 다운이 될 수 있음) 서버 자원을 효율적으로 사용하기 어려움 (서버 열어줄 동안 아무 것도 못함) 보안성이 떨어짐 (하나의 컴퓨터로 서버를 열기 때문에 여러 곳에서 요청이 들어올.. 2022. 8. 23.
쿼리스트링의 활용 페이지네이션 offset -> 보여줄 순서 limit -> 보여줄 양 예시 페이지당 10개의 아이템을 보여주는 UI를 구사한다고 했을 때 1 페이지를 보기 위해서는 0번째 이후로 10개의 아이템을 보여달라 요청해야 함 2 페이지를 보기 위해서는 11-20개의 아이템을 보여달라고 요청해야함 n번째 이후로 : offset key (start) n개의 아이템을 보여줘 : limit key (limit) -> 쿼리스트링 : ?offset=0&limit=10 // 페이지 네이션 샘플 api : "https://jsonplaceholder.typicode.com/posts" // 쿼리 스트링 예시 api : "https://jsonplaceholder.typicode.com/posts/post?_start=0&_l.. 2022. 8. 20.
728x90
반응형