본문 바로가기

전체 글

[AWS] AWS 서버로 프로젝트 배포 및 운영 시 알아두면 좋은 기능들 이번 프로젝트를 진행하면서 AWS 를 서버로 사용했는데 그 때 AWS에 접속해서 가장 많이 사용했던 메뉴들을 정리해두려고 한다 1. CloudWatch 로그, 지표 및 이벤트 양식으로 모니터링 및 운영 데이터를 수집하고, 자동화된 대시보드를 사용하여 시각화합니다. 위에 첨부한 사진을 보면 다양한 메뉴가 존재하는데 이중에서 가장 많이 사용하는 메뉴가 로그 > 로그그룹 이다. 로그 그룹에 들어가면 생성해둔 로그 그룹명이 나오는데, 내가진행하던 프로젝트 같은경우에는 프로젝트명으로 검색을 해서 /var/log/web.stdout.log 파일에서 배포 버전별 해당 프로젝트의 로그를 확인 할 수 있다. 로그목록에서 출력되는 해당 로그들은 프로젝트 어플리케이션을 사용하면 나오던 SPRING 이 찍히는 로그영역에 발생.. 더보기
[클린코드] 동시성 : 여러 스레드를 동시에 돌리는 이유와 어려움 | 동시성이 필요한 이유 동시성은 결합을 없애는 전략이다. 무엇과 언제를 분리하는 전략이다. 스레드가 하나인 프로그램은 무엇과 언제가 서로 밀접하다 무엇과 언제를 분리하면 애플리케이션의 구조와 효율이 극적으로 나아진다. 어떤 시스템은 응답 시간과 작업 처리량 개선이라는 요구사항으로 인해 직접적인 동시성 구현이 불가피하다. 많은 사용자를 동시에 처리하면 시스템 응답시간을 높일 수 있다. | 동시성에 대한 미신과 오해 - 동시성은 항상 성능을 높여준다? 동시성을 때때로 성능을 높여준다. 대기시간이 길거나 여러 프로세서가 동시에 처리할 독립적 계산이 많은 경우에만 그렇다. - 동시성을 구현해도 설계는 변하지않는다? 무엇과 언제를 분리하면 시스템 구조가 크게 달라진다. - 웹 또는 ejb 컨테이너를 사용하면 동.. 더보기
[클린코드] 창발성을 높이는 네가지 설계 규칙 켄트 백이 제시한 단순한 설계 규칙 네가지를 지키면 소프트 웨어 설계 품질을 크게 높일 수 있다고 대부분의 사람들은 말한다. | 켄트백의 규칙 네가지 (중요도순) - 모든 테스트를 실행한다 - 중복을 없앤다 - 프로그래머의 의도를 표현한다 - 클래스와 메서드 수를 최소로 줄인다 단순한 설계 규칙 1 : 모든 테스트를 실행하라 설계는 의도한 대로 돌아가는 시스템을 내놓아야 한다. 모든 테스트 케이스를 만들어 무조건 통과하는 시스템이야말록 ‘테스트가 가능한 시스템’이다. 이는 크기가 작고 한가지 목적만 수행하는 클래스를 만든다. 단일 책임의 원칙을 준수하는 클래스는 테스트가 훨씬 쉽다. 의존 관계 역전 원칙을 적용하고, 의존성 주입, 인터페이스, 추상화 등과 같은 도구를 사용해 결합도를 낮추면 설계 품질이 .. 더보기
[AWS] AWS 기초 인증 자격 Certified Cloud Practitioner 자격증 시험 준비 1 Cloud 환경 작업이 늘어가면서 클라우드 서비스의 관심이 높아지고 이제는 안쓰는 서비스가 더 적을 정도로 다양한 분야에서 활용되고 있다. 가장 대표적인 클라우드 서비스중 하나인 AWS 현재 내가 하고 있는 프로젝트도 AWS Cloud Service를 이용하고 있는데 기본적인 개념이 부족한 상태로 시작하다보니 문제가 발생해도 정확하게 알 수 없고 세팅하는 법도 잘 모르고 그래서 좀 아쉬운 점들이 있었다. AWS를 사용한지도 어연 5개월이 다되어가는데 이참에 클라우드 공부도 다시 할까 싶어서 이전에는 MSA 공부를 했었지만, 이번엔 AWS 공부를 시작해보려고 한다. (이러다가 MSA 공부를 다시 하게 될 지도 모르겠다. 이번에 적은 성과목표가 있어서 ㅎ) 우선 해당 시험에 대해 설명해보고자 한다. AWS .. 더보기
[Nuxt.js] Vue packages version mismatch 오류 해결법 오류발생상황 git 소스를 내려받은 후 실행시 아래 오류 발생하며 실행안됨 Vue packages version mismatch: - vue@2.6.11 - vue-server-renderer@2.6.14 This may cause things to work incorrectly. Make sure to use the same version for both. The thing that works for me is: remove the lock file (package-lock.json) delete the node_modules folder (this is a mandatory step for me) run npm i I am using Windows and Node 12.14.0 | 해결방법 packa.. 더보기
[JAVA] String -> LocalDate 날짜 형식 변환하여 두 날짜 간 일 수 차이 구하기(Period 이용) String date1 = "2021-09-29 12:00"; String date2 = "2021-10-01 14:00"; LocalDate changeDate1= LocalDate.parse(date1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); LocalDate changeDate2= LocalDate.parse(date2, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); import java.time.Period; Period.between(changeDate1,changeDate2).getDays(); System.out.println("result : " + Period.between(changeDate1,.. 더보기
[GitHub] 좋은 코드를 위한 커밋 메시지 규칙 최근 프로젝트를 진행하면서 커밋할때마다 메시지 규칙을 정해놓고 사용하고 싶다는 생각은 하곤했다. 읽고 있던 Clean Code 에서도 한번 언급했던 내용이기도 해서 이참에 나만의 커밋 메시지 규칙을 정해두기 위해 한번 검색해봤다. 이미 이 글을 보고 있는 분들은 Commit Message 의 중요한 점은 다들 설명하지 않아도 알거라 생각한다. 프로젝트를 진행하다보면 Git History 를 참고해야할 순간이 온다. 여러 사람들과 협업하다보면 언제 수정된건지, 언제부터 오류가 발생하고 있던 건지 확인하기 위한 필수라고 생각한다. commit message 고려사항 1. 각각 파일에 무엇이 변경 되었는가? 어떤 클래스가 해당 작업과 관련이 있는가? 2. 해당 코드 수정으로 서비스에 어떤 변화를 일으키는가? .. 더보기
[JAVA] List 내부에 포함된 null 항목 삭제하기 Java List 객체에서 null인 항목 삭제하기 | 문제 상황 DB에서 List 를 꺼내왔는데 해당 컬럼에 null 이 포함되어 있어 정상적으로 코드가 실행되지 않는 문제가 발생 | 해결방법 List null 이 있는 경우 null인 항목이 제거된 새로운 List 를 만들어 실행 방법 1) List.remove() List를 null이 없을때까지 반복문을 돌려가며 지우기 List list = new ArrayList(Arrays.asList("a", null, "c", "d", null)); while(list.remove(null)){ } list.remove() 를 실행하면 null 이 포함된 첫번쨰 항목을 제거한 후 true를 리턴한다. 모든 null 항목을 처리하기 위하여 while 문에 넣어.. 더보기