전체 글
-
플러터로 3주만에 앱 출시하기개발 프로젝트 2024. 6. 30. 10:10
앱스토어 링크https://apps.apple.com/kr/app/%EB%81%84%EC%A0%81-%EC%9D%BC%EA%B8%B0-%ED%95%98%EB%A3%A8-%EC%A0%95%EB%A6%AC-%EC%9D%BC%EA%B8%B0%EC%9E%A5-%EC%A0%80%EB%84%90-%EC%93%B0%EA%B8%B0/id6504718603 끄적 일기 - 하루 정리 일기장, 저널 쓰기끄적 일기와 함께 당신의 일상을 특별하게 기록하세요 매일의 소중한 순간을 끄적 일기와 함께 기록하세요. 간단하고 직관적인 인터페이스로 당신의 감정, 생각, 경험을 쉽게 남길 수 있습니apps.apple.com 플레이 스토어 링크https://play.google.com/store/apps/details?id=com.ang..
-
tail , color, multiple grep리눅스 2022. 8. 15. 02:55
tail 와 sed를 이용해 로그를 좀 더 가독성 있게 관찰하고 싶었다. 1 ) 웹 로그를 tail 로 관찰할때 \n 개행 문자가 한줄로 표현되어 가독성이 떨어지는 경우 기존) tail -f log.log 아래와 같이 \n이 있는 경우 한줄로 표현 됨 {"@timestamp":"2022-08-14T17:48:15.763Z","severity":"ERROR","service":"test","trace":"e5330b399f93bb6b","span":"e5330b399f93bb6b","parent":"","exportable":"","pid":"44593","thread":"http-nio-18080-exec-9","class":"c.d.h.a.exception.GlobalExceptionHandler"..
-
spring boot logback.xml 맥OS에서 파일 생성 문제Springboot 2022. 8. 14. 10:12
문제점 macOS에서 testcase 동작시에도 weblog를 남기게 하였는데 해당 경로는 배포 경로와 동일한 /var/log/webserver를 사용하였다. 문제는 여기서 부터 시작 intellij가 root권한으로 실행되지 않기 때문에 /var/log/webserver 에 폴더를 자동 생성하거나 그 경로 하위에 로그 파일을 생성하는 것도 실패하였음. 해결책 나의 경우 총 4개의 profile을 운영중이다. - real (서비스 프로필) - dev (개발 프로필) - junit, local (로컬 또는 테스트 케이스 동작시) 권한문제로 logback이 파일을 생성하지 못하는 이슈를 해결하고자 위와 같이 분기처리 하였음 ${user.home} 을 사용하여 유저 경로 하위에 로그를 생성한다. 느낀점 사실..
-
AWS ECS ELK, with FilebeatAWS/CI CD 구축 2022. 8. 13. 01:45
아이디어 & 구성 1) AWS ECS 의 ex. /var/log/ecs , 그 외 경로의 여러 로그를 filebeat가 수집하여 logstash로 전송한다. 2) logstash는 해당 로그를 받아 elastic search에게 전송 이후 kibana로 관찰 3) rest api 서버가 로그를 직접 쏘지 않게 하는 구성이며 4) rest api서버인 spring boot 는 ec2에 logs를 write만 하고, filebeat가 해당 파일을 logstash로 전송한다. 5) ecs 를 사용할 것이므로 rest api server, filebeat, logstash 모두를 Docker 생성 & 배포 해야 한다. 6) 이후 ecs에서 위 컨테이너를 관리한다. 환경 AWS ECS, Docker, filebe..
-
[1] Spring REST Docs 이용해 API 문서 작성하기Springboot 2022. 3. 3. 21:07
안녕하세요. 이 글은 제가 서버 개발자로 일하며 회사내 동료, 외부 업체 등에 Open API 형태로 API 문서를 제공했던 경험들을 공유 합니다. 1. Swgger가 있잖아요 ? 먼저 Swagger 이야기를 해볼게요. Swagger를 사용했을때 단점은 다음과 같았습니다. 비즈니스 코드 곳곳에 어노테이션을 추가해야 합니다. 이러다 보니 문서를 위한 어노테이션 및 주석을 달아야 하고 해당 어노테이션이 추가될때마다 관리도 되지 않고 문서를 위한 작업을 해야했습니다. 보는 사람에 따라 코드 가독성이 떨어지기도 합니다. 저의 경우 그랬습니다. 하지만 가장 좋지 않다고 생각했던것은, 예전에 API의 A값의 의미는 "a" 였는데 개발을 진행하다보니 혹은 릴리즈를 하다보니 "b"로 바뀌는 경우 해당 어노테이션을 수정..
-
@DisplayName 어노테이션으로 UnitTest 가독성 높이기TDD 2022. 2. 27. 13:24
@Transactional @DisplayName(휴대전화 번호를 사용해 인증코드 생성한다") @Test void check_generateAuthCode_when_registerPhone() { // Given final String given_phone = "01012341234"; // When final EntryUser entryUser = accountEntryService.generateAuthCodeToken(given_phone); // Then Assert.assertEquals(given_phone, entryUser.getPhone()); Assert.assertNotNull(entryUser.getAuthenticationCode()); Assert.assertFalse(entry..
-
Intellij Codecoverage 확인하기TDD 2022. 2. 27. 13:10
코드 커버리지는 소프트웨어 테스트를 논할 때 얼마나 테스트가 충분한지를 나타내는 객관적 지표 입니다. 저는 개발을 진행하며 하루에 한번정도 코드 커버리지를 확인하고 있습니다. Intellij 에서 Code coverage를 확인하려면 다음과 같이 진행 합니다. More Run/Debug -> Run "Tests in with Coverage" 현재 진행중인 프로젝트의 API 서버 코드 커버리지 결과입니다. 세부 항목은 아래와 같습니다. 최소 80% 이상을 유지해야 할 필요가 있고 80% 미만이면 경계해야 할 필요가 있다고 생각 하고 있습니다. 코드 커버리지 생성 스크립트 및 해당 결과를 취합 할 수 있는 과정을 CI/CD에 넣고 Slack이나 하나의 웹 페이지에서 관찰 할 수 있는 방법을 적용해도 좋을 ..