전체 글

운동을 좋아하는 8년차 웹 개발자 입니다.
코드리뷰의 목적(이점) 지식을 공유 책임을 공유 코드 구조 개선 위와 같은 이점을 가지고 있지만, 코드 리뷰는 단지 하나의 도구에 불과하다는 점을 잊지말아야 한다. 만약 위와 같은 이점을 지니면서도 더 나은 방법이 있다면 도구를 교체해야 한다. Mob Programming Mob Programming 이란 모든 팀 멤버들이 한 스크린 앞에서 같은 시간에 코드를 작성하는 것을 의미한다. 한 세션에 한 사람이 운전수가 되어, 타입하고 클릭하는 역할을 맡는다. 방향자(navigator)는 주의를 기울이며 3 분 정도 코드의 방향성에 대해 지시한다.(목적 정의 및 코드의 방향 제시) 팀의 다른 사람들은 주의를 기울이며 이를 주의깊게 살피고 방향자가 제대로된 방향으로 지시하는지를 함께 살펴본다. 방향자를 3분 마..
·Architecture
마이크로서비스(MSA) 아키텍처 란? MSA 아키텍처는 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 형태를 말한다. 작은 레고 블록(microservice) 하나 하나를 붙여 어떠한 큰 결과물을 만드는 레고 놀이를 생각하면 이해하기 쉽다. 마이크로 서비스의 특징 각각의 서비스는 그 크기가 작을 뿐, 서비스 자체는 하나의 모놀리식 아키텍처와 유사한 구조를 갖는다. 각각의 서비스는 독립적으로 배포가 가능해야 한다. 각각의 서비스는 다른 서비스에 대한 의존성이 작아야 한다. 각 서비스는 개별 프로세스로 구동되며, REST API와 같은 가벼운 방식으로 통신되어야 함. 마이크로서비스(MSA) 아키텍처 장점 배포 관점 서비스 별 개별 배포가 가능하다. (배포 시 ..
·Architecture
모놀리식 아키텍처 (Monolithic Architecture) 란? 모놀리식 아키텍처는 마이크로서비스(MSA) 아키텍처에 반대되는 개념으로, 애플리케이션의 모든 구성 요소가 한 프로젝트에 통합되어 있는 형태를 말한다. 모놀리식 아키텍처 (Monolithic Architecture) 장점 개발 초기에 단순한 아키텍처 구조로 인해 개발에 용이하다. 어떤 서비스든지 개발되어 있는 환경이 같아서 복잡하지 않다. 배포가 간단하다. 확장성이 쉽다. 로드밸런스를 이용하여 로드 부하를 나눠 가지는 방식으로 진행한다. 쉽게 고가용성 서버 환경을 만들 수 있다. End-to-End 테스트가 용이하다. 모놀리식 아키텍처 (Monolithic Architecture) 단점 프로젝트의 규모가 커짐에 따라 애플리케이션 구동 시..
·SQL
기본 문법 SELECT COUNT('컬럼명') FROM 테이블 명 COUNT() 함수 사용 예시 SELECT COUNT(*) --전체 ROW 수 , COUNT(USER_NAME) -- USER_NAME 수 COUNT FROM USER
·Git
Protected Banch란? 어떤 브랜치를 어떤 행위에 대해서 보호하기 위한 조치이다. 예를 들어 우리의 소중한 마스터 브랜치는 언제나 잘 작동하는 올바른 코드가 올라가야 할 것이다. 이 원칙을 지키기 위해 마스터 브랜치에는 항상 올바른 커밋 혹은 머지가 되어야 할 것이다. 우리는 이러한 브랜치를 보호하기 위해서 브랜치들에 대해 protection rule들을 설정 해 줄 수 있다. pull을 받으려고 하는 경우 permission 에러 발생 처음 GitLab에서 프로젝트를 생성하면 master brach는 디폴트로 proteced 상태이다. 대개 프로젝트 생성후 초기에 브랜치 보호를 해제하지 않고 멤버가 master branch를 pull 또는 push 하려는 경우 발생한다. 에러 발생 원인 먼저 ..
·Spring
Spring은 @Autowired 어노테이션을 이용한 다양한 의존성 주입(DI; Dependency Injection) 방법을 제공한다. 의존성 주입을 해야 하는 이유 Test가 용이해진다. 코드의 재사용성을 높여준다. 객체 간의 의존성(종속성)을 줄이거나 없앨 수 있다. 객체 간의 결합도를 낮추면서 유연한 코드를 작성할 수 있다. 의존성 주입의 3가지 방법 생성자 주입(Constructor Injection) 필드 주입(Field Injection) 수정자 주입(Setter Injection) Spring Framwork reference에서 권장하는 방법은 생성자를 통한 주입 이다. 생성자 주입을 권장하는 이유 순환 참조를 방지할 수 있다. 불변성(Immutability) 테스트에 용이하다. 참고자료..
·Git
branch 종류 5가지 Git branch 를 검색하면 가장 많이 보는 이미지 이다 해당 이미지의 branch 들이 기본적으로 git flow 에서 많이 사용 하는 branch 이다 branch 사용용도는 다음과 같다. Master Branch - 제품으로 출시될 수 있는 브랜치 배포(Release) 이력을 관리하기 위해 사용. 즉, 배포 가능한 상태만을 관리한다. Develop Branch - 다음 출시 버전을 개발하는 브랜치 기능 개발을 위한 브랜치들을 병합하기 위해 사용. 즉, 모든 기능이 추가되고 버그가 수정되어 배포 가능한 안정적인 상태라면 develop 브랜치를 ‘master’ 브랜치에 병합(merge)한다. 평소에는 이 브랜치를 기반으로 개발을 진행한다. Feature branch - 기능..
·Spring
IoC(Inversion of Control) 제어의 역전 객체에 대한 제어권이 개발자로부터 컨테이너로 넘어간 것 객체의 생성부터 생명주기 관리까지 전부 컨테이너가 맡아서 하기 때문에 제어를 컨테이너가 갖고 있다. 스프링에서 제공하는 컨테이너를 IoC 컨테이너라고 하기도 한다. 컨테이너가 직접 빈을 생성/관리하기 때문에 개발자는 코드에 new 등으로 선언하지 않아도 되며 이는 각 클래스들의 의존도를 줄여준다. IoC (Inversion of Control) 용어 bean : 스프링에서 제어권을 가지고 직접 만들어 관계를 부여하는 오브젝트 bean factory : 스프링의 IoC를 담당하는 핵심 컨테이너 application context : bean factory를 확장한 IoC 컨테이너 configu..
·Front - End
기본 문법 jQuery.trim(str) .trim() 메서드 사용 예시 참고자료 : https://api.jquery.com/jQuery.trim/ jQuery.trim() | jQuery API Documentation Description: Remove the whitespace from the beginning and end of a string. Note: This API has been deprecated in jQuery 3.5; please use the native String.prototype.trim method instead. Unlike jQuery.trim, String.prototype.trim does not work with types othe api.jquery.com
·Front - End
trim() 사용방법 주의 사항 : IE8 혹은 그 이하 자바 스크립트에서는 trim() 이 지원되지 않는다. jQuery 라이브러리를 사용하고 있다면 .. $.trim('str '); jQuery 라이브러리를 사용 하지 않는다면. .. 함수를 만들어서 사용하기 !! function trim(str) { return str.replace(/(^\s*)|(\s*$)/gi, ''); }
·Spring
@SuppressWarnings 이란 컴파일에서 나타나는 경고에 대해 옵션으로 설정하여 경고를 무시할 수 있다. @SuppressWarnings 옵션 종류 all : 모든 경고를 억제 cast : 캐스트 연산자 관련 경고 억제 dep-ann : 사용하지 말아야 할 주석 관련 경고 억제 deprecation : 사용하지 말아야 할 메소드 관련 경고 억제 fallthrough : switch문에서의 break 누락 관련 경고 억제 null : null 분석 관련 경고 억제 rawtypes : 제네릭(데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있음)을 사용하는 클래스 매개 변수가 불특정일 때의 경고 억제 finally : 반환하지 않는 finally 블럭 관련 경고 억제 u..
·Spring
Spring Security 란? Spring Security는 스프링 기반의 어플리케이션 보안을 담당하는 프레임워크이다. Spring Security를 사용하면 사용자 인증, 권한, 보안처리를 간단하지만 강력하게 구현 할 수 있다. Filter 기반으로 동작하기 때문에 Spring MVC와 분리되어 동작한다. SecurityFilterChain 일반적으로 브라우저가 서버에 데이터를 요청하면 DispatcherServlet에 전달되기 이전에 여러 ServletFilter를 거친다. 이때 Spring Security에서 등록했었던 Filter를 이용해 사용자 보안 관련된 처리를 진행한다. Spring Security와 관련된 Filter들은 연결된 여러 Filter들로 구성되어있다. 이 때문에 Chain이..
wsstar
걷고 또 걷기