분류 98

[1주 차] 회고

1주 차 미션 회고  간단한 소감1주 차를 한 단어로 표현하면 “설렘”이라고 표현하고 싶습니다.처음으로 제 코드가 많은 사람에게 보이는 기회를 가질 수 있었습니다. 그렇기에, 코드를 구현하는 내내 잘 구현해야 한다는 압박감과 떨림이 있었지만, 설렘이 더 앞섰습니다.한 번은 식당에서 노트북을 폈습니다. 제가 짠 코드에서 startWith() 함수를 써서 메서드를 간소화하고 가독성을 더 좋게 만들 수 있는 방법이 떠올랐습니다. 공부하는 티를 너무 내는 것 같아서 뻘쭘했지만, 시간이 지나면 까먹을 것 같았습니다. 그만큼 미션에 몰두하며 일주일을 보냈던 것 같습니다.또한, 당장 시험 기간이기 때문에 학교 공부에 시간을 어느 정도 할애해야 했습니다. 그렇기에 쉬는 시간을 포함하여 학교에 있는 시간은 학교 공부에 ..

[1주 차] Java Style Guide - 우테코 프리코스 7기 버전

1주 차 미션 진행 중 Java Style Guide를 접하게 되었습니다. 전부 처음 보는 내용은 아니지만, 대부분의 내용이 처음 보는 내용이었습니다.  프로그래밍 요구사항에도 해당 스타일 컨벤션을 지키라는 문구가 있었습니다. 따라서, 해당 내용을 정리해서 눈에 익힐 필요가 있었고 공유해도 좋을 것 같아서 포스팅을 하게 되었습니다..!Java Style Guide - 우테코 프리코스 7기 버전소스 파일 구조라이선스 또는 저작권 정보파일에 저작권 정보가 포함되어 있다면, 해당 정보는 파일의 최상단에 위치합니다.패키지 선언패키지 선언은 줄바꿈하지 않으며, 120자 열 제한이 적용되지 않습니다.임포트 문와일드카드(*) 임포트 금지정적 임포트를 포함한 와일드카드 임포트는 사용하지 않습니다.줄바꿈 금지임포트 문은..

[1주 차] 정규표현식과 메타문자, 그리고 java.util.regex 패키지

1주 차 미션을 완성하였습니다! 완성은 하였는데....사실 고치고 싶은 부분이 많아요.검증 처리 로직도 따로 빼고 싶습니다.그런데 !!! 이번에 치명적인 문제를 발견하였습니다!-> 정규표현식에서 메타문자를 읽어들이지 못하는 코드를 짰습니다...! *StringParserpublic String extractDelimiter() { if (!inputStrings.startsWith(FIRST_CUSTOM_STRING)) { return STANDARD_DELIMITER; } validateCustomStrings(inputStrings); return inputStrings.substring(SECOND_NUMBER, inputStrings.indexOf(CUSTOM_N..

[1주 차] Git Commit Message Conventions 정리

1주 차 미션 시작입니다!아쉽게도 이번 포스팅은 미션 관련된 내용은 아니고, 깃허브 메세지 컨벤션을 정리해보았습니다.아직 미션이 안끝나서, 미션 내용이나 미션에 관련된 내용은 아직 올릴 수가 없습니다..미션 내용이 무엇인지, 어떻게 구현하였는지, 기능 구현 목록은 어떻게 작성하였는지 등 다양한 내용은 미션이 끝난 후 회고록을 통해 보여드리겠습니다.이번 과제 진행 요구사항을 살펴보니, 이런게 있더라고요!!해당 내용은 여기를 클릭하시면 보실 수 있습니다..!다만, 아쉽게도 영어로 나와있어서 저는 필요한 부분을 해석해 따로 정리해보았습니다.앞으로의 미션을 진행하는데 있어서 많은 도움이 될 것 같습니다.1. 커밋 메시지의 기본 구조커밋 메시지는 세 가지 요소로 구성됩니다:(): 예시는 아래와 같습니다.feat(..

우테코 프리코스 시작!

우아한테크코스에서 교육을 받고 싶다는 생각이 들어, 우아한테크코스에 지원하게 되었습니다 ㅎㅎ..   그리고 지원 완료되었다는 메일을 받았고, 드디어 어제부터 프리코스 시작하였습니다! 어제 축구 대한민국vs이라크 직관 가느라 못했어요 ㅋㅋㅋㅋ... 참고로 말씀드리자면, 우테코 메일이 자꾸 스팸차단 됩니다.. 그러니까 다음부터 참여하는 여러분들은 스팸 메일 확인 잘 하세요!! 제 지원서나 증빙자료 내용은 우테코 붙게 되면 약간의 꿀팁 공유하겠습니다 ㅋㅋ 아무튼 프리코스 열심히 해보겠습니다! 화이링

JPA : 데이터 베이스와의 상호작용을 위한 특징

JPA 란 무엇인가?JPA(Java Persistence API)는 자바 애플리케이션에서 데이터베이스와 상호작용하기 위한 ORM(Object-Relational Mapping) 표준입니다.데이터베이스와의 상호작용을 위한 주요 특징 1. 쓰기 지연 (Write-Behind / Write-Delay)- 쓰기 지연은 JPA에서 성능을 최적화하기 위해 제공하는 기능입니다.- 엔터티(객체)에 대한 변경 사항이 즉시 데이터베이스에 반영되지 않고, 트랜잭션이 커밋될 때까지 변경 사항을 보류합니다.- 즉, 여러 변경 사항을 모아서 한 번에 데이터베이스에 반영하는 방식입니다. -> 데이터베이스와의 상호작용 횟수를 줄여 성능을 최적화할 수 있습니다. 2. 더티 체킹 (Dirty Checking)- 더티 체킹은 JPA가 객..

트랜잭션(Transaction)에 관하여

Transaction(트랜잭션)트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻합니다.트랜잭션의 특징원자성 (Atomicity)트랜잭션 내의 모든 명령이 모두 수행되어야 하며, 하나라도 수행 안될 경우 트랜잭션 모두 취소 => 롤백이 일어납니다.일관성 (Consistency)트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지합니다.격리성 (Isolation)둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없습니다.지속성 (Durability)트랜잭션이 성공적으로 완료됬을 경우, 결과는 영구적으로 반영되어야 합니다.트랜잭션 연산 및 상태연산C..

[Spring] lotto - API 서버 구현(2)

로또 API 서버 구현 2탄입니다! 나머지 기능 모두 구현입니다!  3. 특정 사용자의 모든 로또 정보 조회  *LottoController@GetMapping("/members/{memberId}/lottos")public ResponseEntity showLottos(@PathVariable Long memberId) { List lottoResponse = lottoService.getLottos(memberId).stream() .map(LottoMapper::toLottoResponse) .toList(); LottoResponses lottoResponses = LottoMapper.toLottoResponses(lottoResponse); ..

[Spring] lotto - API 서버 구현(1)

이번에는 API 서버 구현입니다!  중간에 exception 설명하느라 길어졌네요 ㅋㅋ 바로 시작합니다!  1. 로또 사용자 등록 *MemberController@PostMapping("/members")public ResponseEntity createUser(@RequestBody CreateRequest createRequest) { CreateResponse createResponse = MemberMapper.toCreatedResponse(memberService.createMember(createRequest)); URI location = URI.create("/api/members/" + createResponse.id()); return ResponseEntity.cre..

[Spring] lotto - exception 적용

저번 포스팅에서는 제가 exception 코드를 어떻게 구현했는지 설명했습니다.  이번 포스팅에서는 구현한 exception 코드를 어떻게 적용하였는지 알아보겠습니다!  저는 아래에 첨부한 API를 통해 어떻게 exception 을 적용하였는지 설명하겠습니다!  *MemberServicepublic void buyLotto(Long id, int count) { Member member = memberRepository.findById(id) .orElseThrow(NotFoundMemberException::new); member.updateMoney(count); MemberLotto memberLotto = new MemberLotto(member); mem..