본문 바로가기

분류 전체보기23

[Session] 조금 더 편리한 협업을 도와줄, Git Hooks / 박소정 작성자: 박소정 '아 커밋 메시지 잘못 입력했다..😑' Git을 활용해 팀 프로젝트를 진행할 때는, 가독성과 오류 발생을 줄이기 위해 개발 규칙을 정하곤 한다. 하지만, 사람인지라 누구든 종종 전략과 다른 커밋 메시지를 잘못 입력하는 등의 실수를 하기도 한다. Git에는 이러한 문제를 사전에 방지해 주고, 더 편리한 협업을 도와주는 기능이 있다. 이번 세션을 통해 그 기능인 Git Hooks를 알아보려 한다. 1. Git Hooks 알아보기 1-1. Git Hooks 개념 Git Hooks는 Git에서 어떤 이벤트가 발생했을 때, 원하는 작업을 특정 스크립트를 통해 실행할 수 있게 하는 기능이다. Git Hooks 공식 문서 1-2. Git Hooks 종류 Git Hooks는 크게 클라이언트 훅, 서버 .. 2023. 3. 13.
[TDD] 8. 테스트 범위와 종류 작성자 : 김연지 실습 환경 Java 11 Spring Boot 2.7.7 목차 및 내용 정리 테스트 범위 통합 테스트 예 테스트 범위 하나의 기능이 올바르게 작동하려면 컨트롤러, 서비스, 모델과 같은 자바 코드와 프레임워크 설정에 문제가 없어야 할 뿐 아니라 브라우저에서 실행되는 자바스크립트 코드, HTML과 CSS 등이 정상 동작해야 한다. 또한, DB의 테이블도 올바르게 생성되어 있어야 한다. 개발자가 코드를 조금씩 수정할 때마다 브라우저부터 DB까지의 전 범위를 테스트해야 하는 것은 아니며 출시 전에 DB와 연동할 때 사용한 쿼리만 확인해서도 안 된다. 테스트의 범위는 테스트의 목적과 수행하는 사람에 따라 달라진다. 테스트 범위에 따른 종류는 세 가지로 나눠볼 수 있다. 단위 테스트 통합 테스트 .. 2023. 3. 5.
[TDD] 7. 테스트가 가능한 설계 작성자 : 김정호 실습 환경 - Java 17 - Spring Boot 3.0.1 - wsl 2 테스트가 어려운 코드 개발을 진행하다 보면 테스트할 수 없는 상황이 발생하게 된다. 어떤 경우가 있는지 살펴보도록 하자. 하드 코딩된 경로 존재 의존 객체를 직접 생성 정적 메서드 사용 실행 시점에 따라 달라지는 결과 역할이 섞여있는 코드 그 외 메서드 중간에 소켓 통신 코드가 포함 콘솔에서 입력받거나 결과를 콘솔에 출력 테스트 대상이 사용하는 의존 대상 클래스나 메서드가 final -- 이 경우 대역으로 대체 어려울 수 있음 테스트 대상의 소스를 소유하고 있지 않아 수정 어려움 하드 코딩 & 의존 객체 직접 생성 예시 public class PaySync { // 의존 객체를 직접 생성하고 있다. priva.. 2023. 3. 3.
[Session] Spring Security / 장채은 작성자: 장채은 스프링부트로 어플리케이션 프로젝트를 진행하면서 Spring Security + JWT로 로그인을 경험해보았지만 코드 복붙으로 코드에 대해 완전한 이해없이 적용했었었다, 이번 세션을 통해 자세하게 개념을 살펴보며 Spring Security 로직에 한 걸음 다가가보고자 한다. 1. Spring Security란? 스프링 기반의 애플리케이션의 인증, 인가와 같은 보안을 담당하는 스프링 하위 프레임워크이다. 2. Security 용어 Spring Security는 보안과 관련된 프레임워크이다보니 보안과 관련된 용어들이 많이 나온다. Spring Security를 이해하기 위해서는 보안 관련 용어를 익히는 것이 중요하다. 인증(Authentication) 보호된 리소스에 접근한 대상이 누구인지,.. 2023. 2. 26.
[TDD] 6. 대역 작성자: 정창우 대역의 필요성 외부 요인 테스트를 작성하다보면 외부 요인이 필요한 시점이 있다. 테스트에 관여하는 주요 외부 요인은 다음과 같다. 파일 시스템을 이용 DB로부터 데이터를 조회하거나 데이터를 추가 외부 HTTP 서버와 통신 외부 요인 문제점 테스트 대상이 이런 외부 요인에 의존하면 테스트를 작성하고 실행하기 어려워진다. 테스트 코드에서 사용하는 외부 API 서버가 일시적으로 장애가 나면 테스트를 원활하게 수행하기 어렵다. DB의 경우도 상황에 맞게 데이터를 구성하는 것이 항상 가능한 것은 아니다. 외부 요인의 문제점을 정리하면 다음과 같다. 테스트 작성을 어렵게 만든다. 테스트의 결과를 예측할 수 없다. 테스트 대상에서 의존하는 요인 때문에 테스트가 어려울 때는 대역을 써서 테스트를 진행할.. 2023. 2. 24.
[Session] WebSocket이란? / 이상민(M) 작성자: 이상민(M) 주제 선정 이유 기본적인 커뮤니티 앱/웹을 구현하고자 할 때 채팅 서비스는 누구나 한번쯤 생각해 봤을 것이다. 처음에 채팅서비스를 구현하기 위해서 단순한 HTTP통신처럼 POST로 데이터를 보내고, 이 보내진 메시지를 GET요청을 통해 시간 순서대로 보여주면 되지않을까란 생각을 했다. 하지만 이런 방식으로 개발을 진행할 경우 새로운 메시지를 보기위해서는 계속해서 새로고침을 해야 하는데 이게 진짜 채팅서비스가 맞나라는 생각을 지울수가 없었다. 결국 좀 더 제대로된 채팅서비스 구현을 위해서 구글링을 한 결과 웹 소켓이라는 것을 발견하게 되었고, 이번 세션을 통해서 간단하게 웹 소켓이 무엇인지 소개하는 글을 작성하고자 한다. 웹 소켓이란 HTML5 표준 기술로, HTTP 환경에서 클라이언.. 2023. 2. 12.