문제 이번 주차를 지나며 겪었던 문제가 무엇이었나요?클린 + 레이어드아키텍처에 대한 감을 잡기 어려웠습니다.시도 문제를 해결하기 위해 어떤 시도를 하셨나요?멘토링을 통해 해결하려 했습니다.해결 문제를 어떻게 해결하셨나요?구조를 잘 잡은 팀원의 구조를 보고 기억해 뒀다가, 큐엔에이때에 감을 잡을 것 같습니다,알게된 것 문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요?구조라는 것은 꼭 그렇게 짜야한다는 보장은 없는 것 같습니다. 다만 그 구조를 사용한 이유가 결국 중요하다는 생각입니다.지난 목표 회고 지난 주에 설정해두었던 목표는 달성하셨나요? 잘된 것은 무엇이고 안된 것은 무엇인가요?네 TDD와 비관적 락을 사용해봤습니다. 또 제가 만든 DB 테이블과의 연관관계로 원하는 방향의 프로그램이 만들..
1. 문제 (과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제)Q.이번 주차를 지나며 겪었던 문제가 무엇이었나요? A. Test 코드 작성은 처음 작성하는 것에 가까웠습니다. 초반에는 @SpringBootTest를 걸어 서버를 돌리며 테스트를 진행했습니다. 작성을 진행하던 중 이건 통합테스트라는 것을 알게되었고, 단위테스트로 진행하기 위해 Mockito를 처음 사용해보게 되었습니다. 따라서 단위테스트에 대한 개념을 좀 더 알게되었고, Mockito를 사용하면 DB데이터에 상관없이 오로지 비지니스 로직에 대한 테스트만 가능한 것에 생산성이 많이 올라갈 수 있겠다는 생각을 하게 되었습니다.2. 시도Q. 문제를 해결하기 위해 어떤 시도를 하셨나요?A. 처음 알게되는 개념들 특히 Mockito와 동시성에 대해..
순차적으로 처리라는건 뭐임?-> 동시에 요청이 들어오면 정합성을 지키면서 처리할 수 있고 (Lock)(Lock = 심화과제라고 생각하면 된다.) > Lock을 이용해서 충돌을 막고, 같은 유저ㅗ에 대한 요청이 있다며 ㄴ(입금/출금) 한번에 하나만 수행된다. > 이거 왜 넣었어요? 1. 동시에 공유자원 ( 데이터) 에 여러 명이 접근 했을 때 발생하는 문제를 인지하고 있는지. 2. 실제 APP 운영 시에 빈번하ㅔㄱ 발생하는 동시성 문제를 점검하기 위한 테스트를 작성할 수 있는지. ( 통합 테스트 )-> reqeust를 우리가 Controller에서 받은 시점을 Timestamp로 찍어서 이걸 Queueing 한다던가 하는 방법으로 풀어낼 수 있다. (심화의 심화 = 완전 이거..
1. TDD&클린아키텍쳐- 5주 동안 진행 2. 대용량 트래픽 & 데이터 처리 3. 장애 대응 프로젝트를 보내줄 거고,그걸 진행하면 됌 서버는 직접 구축해서 진행하게 될 것 이다.------TDD는 왜 중요한가- 이 전에는 완벽한 설계를 통해서 피처개발에 집중했다면, 장애가 날 수 있음을 인정하고장애를 허용하는 방법론이 제시가 된다. 유지보수시 대응이 가능할 방법 - 프로그램이 복잡해짐으로 디도스공격, 유저가 어떻게 사용할지가 예측이 안되기 때문 - 기존 찍어내기 식의 개발로는 소프트웨어의 품질을 올릴 수 없다.- 장애의 시그널을 찍을 수 없었기 때문에, 테스트가 필요해 진다. - 테스트코드와 테스트드리븐는 다른 것 - 현업에서 TDD란? -백엔드 개발자로서 요구사항을 분석하고 올바르게 완성하기..
1. 지금까지의 회고- 먹고 살길을 찾아 우연히 유튜브를 통해 첫 개발을 시작했었다. 1달 간의 독학과 함께 6개월간 학원을 통해 웹 개발 기술을 알게 되었다. 개발자 호황기였던 상황 덕분에 쉽게 입사를 하게되었고, 2년 9개월간 근무를 했었다. 하지만 마땅한 사수가 없어 혼자 고군분투 해야했던 전 직장이었다. 그 기간 동안으로 인해 개발에 대한 궁금증이 머리 속에 꽉차게 되었다. 그리고 인터넷 강의 등을 듣고 홀로 포트폴리오가 될만한 사이트를 개발하며 지내왔다. 2. 향해 플러스 참여 계기- 전 직장에서 혼자 개발을 하는 것에는 큰 장점이 있었다. 고객사와의 개발미팅, 서버 배포, 웹 취약점 등 한 홈페이지를 구축하고 운영하는 데에 대한 프로세스를 모두 격을 수 있었다. 하지만 단점은 내가 잘하고 있는..
script> $(document).ready(function () { $('td').filter(function (index, selector) { if (index % 2 == 0) { $(selector).css('background-color', 'red'); } }); });/script> 필터는 셀렉터를 가져올 수 있음, 순서에 따라 조건을 넣어서 사용 할 수 있다. 필터 메서드의 메서드 체이닝(Chaining)여러 필터 메서드를 사용하는데에 있어서..
1. 요구사항 정의서에서 기술 도출예를 들어 로그인 기능을 만든다고 한다면- 회원가입 시에 데이터를 DB에 저장한다. ㄴ 1번 예외는 회원 ID의 Duplicate 예외를 체크해야한다. ㄴ 2번 예외로 제대로 데이터가 저장되었는지 select로 확인한다. 총 1번과 2번의 테스트가 필요할 것이다. 2. 위의 기능을 테스트하기 위해 테스트코드를 작성한다.주의점은 테스트 코드를 먼저 만들어야하며, Dto 혹은 로직을 먼저 만들어선 안된다. 늘 끝에서 먼저 생각해야한다.책의 내용을 정리해서 말하자면 그 이유는 중심에 있다고본다. 예외사항을 고려해서 실패 코드를 먼저 작성해야한다. 그렇게 예외를 던지는 값부터 거꾸로 올라가서 테스트하는데에 필요한 클래스, 메서드, 변수 등을 고민하며 테스트를 진행해야한다. ..
- Total
- Today
- Yesterday
- 로그인
- 리터럴
- 향해플러스백엔드
- 향해99
- React
- hypertexttransferprotocol
- 백엔드 개발자 공부
- HTTP
- 백엔드 개발자 역량
- rejectValue
- jpa api
- 향해플러스
- SpringBoot
- BindingResult
- 스프링공부
- thymleaf
- 스프링부트
- reject
- ArgumentResolver
- Java
- filter
- react실행
- 항해플러스
- exception
- Intercepter
- 항해99
- 예외처리
- 인터셉터
- JPA
- 컨트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |