분류 전체보기

정적분석도구 SonarQube 정적분석도구란? 정적분석이란 프로그램의 실행 없이 코드를 분석하는 것 입니다. 비용이 추가로 들지 않으면서 코드의 품질을 검토하고, 잘못된 부분을 옳은 방향으로 고칠 수 있도록 도와주는 다양한 도구들을 말한다. 개발자의 역량 향상과 미래의 장애 발생 확률을 줄이는 역할을 한다. 잘 알고 있는 JavaScript의 ESLint나 Prettier도 정적분석도구로 불린다. 또한 테스트 커버리지를 확인할 수 있는 Jacoco도 정적분석도구라 불린다. SonarQube란? 코드를 분석하여 중복, 테스트 커버리지, 코드 복잡도, 버그, 보안 취약성 등을 리포팅 해주며 IDE, 빌드도구, CI 도구와 통합하여 사용해 분석할 수 있다. 위와 사진처럼 여러가지의 도구를 이용해 코드 품질을 ..
· Book
[함께자라기] 3장. 애자일 학습과 협력이 애자일이 북활실성을 다루는 핵심적인 구동원리 애자일의 씨앗 고객에게 매일 가치를 전하라. 고객에게 우리의 진짜 고객은 누구인가? 매일 어떻게 점진적으로 가치를 전할 것인가? 어떻게 보다 일찍, 그리고 보다 자주 가치를 전할 것인가? 가치를 무엇이 가치인가? 지금 우리가 하고 있는 일이 정말 가치를 만드는 일인가? 지금 가장 높은 가치는 무엇인가? 비슷한 수준의 가치를 더 값싸게 전달하는 방법은? 전하라 가치를 우리가 갖고 있지 않고 고객에게 정말 전달하고 있는가? 고객이 정말 가치를 얻고 있는가? 애자일의 성공 요인 분석 고객참여, 리팩터링, 코딩 후 자동화 단위 테스트 붙이기, 코드 공유 두려워도 중요하다면 시도해봐야 하지 않겠는가. 애자일 코치의 특징 의사소..
· Book
[함께 자라기] 2장. 함께 조엘 테스트 소스 컨트롤을 사용하는가? 한 번에 빌드를 만들어낼 수 있는가? 일일 빌드를 만드는가? 버그 데이터베이스를 가지고 있는가? 새로운 코드를 작성하기 전에 버그를 고치는가? 스펙이 있는가? 프로그래머가 조용한 작업환경에서 일하는가? 돈이 되는 한 최고의 툴을 사용하는가? 테스터가 있는가? 채용 면접 때 후보가 코드를 짜게 해보는가? 복도 사용성 테스트를 하는가? 과연 이것들이 제대로된 테스트라고 할 수 있을까? 모든 항복에 "예"라고 답하는 것이 무조건 더 낫다고 동의하기 어렵다. 소프트웨어 개발을 잘 관리하기 위한 근본적 능력 복잡한 서로를 이해하는 능력으로 프로젝트를 계획한 다음 관찰하고 행동하여 계획에 맞게 프로젝트가 진행되게 하거나 계획을 바꿀 수 있어야 한다..
Spring에서으로 Log를 Slack으로 받아보기 예제코드 Log를 사용하는 이유 최소한으로 로그는 서비스 동작 상태를 파악하고 장애를 파악하기 위해 사용합니다. 이러한 로그들은 분석하면서 서비스 지표 확인, 트랜잭션, 성능, 버그 등을 다양한 정보로 확인이 가능합니다. LogBack이란? Log를 효율적으로 관리하기 위해서 사용하는 것입니다. 현재 core, classic, access의 세가지 모듈로 나눠져 있다. 코어 모듈은 다른 두 개의 모듈을 위한 기반이며, classic 모듈은 코어를 확장하는데 사용하며 access는 서블릿 컨테이너와 통합되어 HTTP-access 로그 기능을 제공한다. 스프링에서는 기본적으로 logback을 사용한다. Spring Boot Base Logback Sprin..
· Book
[함께 자라기] 1장. 자라기 다음과 같은 질문들로 발전하자. 내가 정말 자랄 수 있을까? 우리가 정말 함께 자랄수 있을까? 우리가 정말 매일매일 함께 자랄수 있을까? 야생 학습의 특징 협력적, 비순차적, 자료의 한정이 없음, 명확한 평가가 없음, 정답이 없음, 목표가 불분명하며 바뀌기도 함. 나는 현재 야생 학습을 하고 있는가? 프로그래밍 학습이 야생 학습이라고 생각한다. 설계를 진행할때, 프로젝트를 하면서 팀원들과 협업을 할때 모두 정답이 없으며, 순서가 없는 것 같다. 경력과 실력의 상관관계 경력이 10년인 개발자가 2년인 개발자보다 더 우수하지 않았다. 경력과 생산성은 아무 상관관계가 없었다. 단, 언어를 접한 경험이 6개월 미만인 개발자들은 전반적으로 나머지 개발자들보다 성적이 저조했다 구조화된..
· Common/Web
OAuth2 인증방식 OAuth2 인증 방식 종류 Authorization Code Grant Type Implicit Grant Type Resource Owner Password Credentials Grant Type Client Credentials Grant Type Authorization Code Grant Type 권한 부여 코드 승인 타입 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할때 사용한다. 리소스 접근을 위한 사용자명, 비밀번호, 권한 서버에 요청해서 받은 권한 코드를 함께 활용해서 리소스에 대한 엑스스 토큰을 받아 이를 인증에 사용하게 됩니다. 대부분의 소셜 미디어들이 웹 서버 형태의 클라이언트를 지원하는데 사용하는 방식입니다. 웹 서버에서 장기 액세스 토큰(long..
· Backend/Java
Jacoco 설정하기 예제코드 Jacoco란? Java 코드의 커버리지를 체크하는 라이브러리다. 커버리지 결과를 눈으로 보기 좋도록 html, xml, csv 같은 report로 생성한다. 또한 테스트 결과가 내가 설정한 커버리지 기준을 만족하는지 확인하는 기능도 있다. JaCoCo 플러그인 추가 apply plugin: 'jacoco' jacoco { toolVersion = '0.8.6' // 현재 최신 버전 } 버전을 명시하면 jaCoCo를 사용할 수 있다. 이걸 추가하고 gradle 새로고침을 실행하면 아래와 같이 jaCoCo Task가 생성된다. JaCoCo Gradle Task jacocoTestReport 커버리지 결과를 사람이 읽기 좋은 형태의 리포트(html,..
· Backend/SQL
[프로그래머스] 이름이 없는 동물 아이디 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX..
· Backend/SQL
[프로그래머스] 이름이 있는 동물 아이디 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX..
Spring Logback profile 조합 전략 예제코드 이전 코드 최근 프로젝트를 진행하면서 Logback 관련 공부를 하다가 조합을 이용한 Profile 전략 방식을 발견했다. 전에는 아래와 같이 각 프로파일마다 파일을 만들었고, 사실 dev와 prod는 슬랙 알림 방식과 파일 방식은 중복이였다. logback-local.xml logback-dev.xml ${LOG_PATH}/logback/logback_dev_${dailyLog}.log [%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n ${LOG_PATH}/logback/logback_dev_${dailyLog}.%d\(.%i\).log 100MB [%d{..
Seyun(Marco)
'분류 전체보기' 카테고리의 글 목록 (21 Page)