。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

프로젝트 19

[BleuAuction 리팩토링] issue closed

모두가 취업을 함으로써 졸업을 했다.... 행운의 블루옥션... 리팩토링 작업을 하면서 수료 후에도 코드 치는 감을 잃지 않을 수 있었고 새로운 지식도 얻고 또 면접볼 때 할말도 있었다. 아직 해볼 수 있는 작업은 많이 있지만 모두가 취업을 해서 집중해야하는 것이 생겨 더 진행이 힘들 것 같다. 아주아주 유익한 시간이었고 즐거웠다 ! 모두 새로운 회사에서 수습 기간 거치고 약간의 적응 후에 다시 같이 공부하면 좋겠다!

[BleuAuction 리팩토링] 12/22 (금) 종1's last present

종1님이 담 주 화요일에 떠난다.. 사회로 ,,, 그래서 우리에게 그 기념 선물로 아래와 같은 코드를 선물해주었다. 그리고 어제 열린 긴급 회의는 수정한 것을 설명해주는 강의였다. 약속시간 3시간 전에 갑자기 눈 앞이 안 보이는 편두통이 와서 정신 못 차리고 있따가 10분 늦게 들어갔다; 이 곳에서 배운 건 우리 기존의 것은 객체 중심의 설계가 아니었음 - jsonreference - managed 없어짐. 순환 참조 다없어짐 리팩토링하면서 엔티티 고칠 수 있음 - 막막하다고 두지 말고 고쳐봐라 orderstatus - 주문완료, 결제 중 또는 .. 등등의 상태 값이 부족했다. ordermenu - saveDTO 수정하기, 아마 동작 안 할 것이다. 테스트 코드 작성할 때 서비스 -컴포넌트, 모듈 서비스..

[BleuAuction 리팩토링] 12/18 (월) 어디까지 하셨어요

오늘도 돌아온 월요일 5인이 모두 출석했다. 시작은 성주님 지원 몇 군데 하셨어요 ? 우리 희망 종1님이 취직을 해서 떠난다. 우린 아직 그를 떠나보낼 준비가 안 되었는데 ,,,, 저녁에 하면 볼 수 있을지도 모른다는 여지를 남겨 우린 그 말에 매달려본다 .... 아무튼 백 팀은 계속 서비스 나누기 작업을 계속 하고 있다. 종원님은 맡은 부분을 다 했다고 했고 나도 이제 기능 두 개 기현오빠는 세 개 남았다고 했다. 목요일까지 모두 분리해오기로 했다. 종1님이 작업하다가 내가 커밋했던 부분을 날려서 다시 복원을 했었는데 테스트는 안 해놔서 깃에 가서 다시 긁어왔다. 기록이 모두 남는 깃의 대단함(?) 소중함(?)을 다시 한 번 느꼈다. 이전에 내가 뭘 어떻게 했는지 알 수 있는게 정말 좋은 것 같다. 옛..

[BleuAuction 리팩토링] 12/13 (수) 종원's Service 코드 리뷰

계속 반복되는 코드를 메서드로 만들어바라 ! 하는 종원's 리뷰 이런 생각을 한 번,, 진짜 해봤는데 그냥 생각만 하고 넘어갔다. 바꾸니까 좋잖아 ,,!! 서비스를 두 개로 나누고 나서 아래와 같이 조언을 받았다. 그래서 고쳤더니;; 테스트 코드가 작동이 안 됐다. 아니 왜 안 되는거야 !!!!! 검색해보니까 주입이 어쩌고 저쩌고 하는데 이미 다 @를 달아놨는데 왜 ,,! 하고 생각해보니,,, 서비스를 두 개로 나누면서 서비스에서 서비스를 주입받는 것을 깨달았고 Mock 객체로 추가 해주니 정상 작동했다. 오늘의 발견 ^ㅡ^

[BleuAuction 리팩토링] 12/11(월) 특이사항 없음

종원님을 기다린다는 핑계와 ,,, 약간의 무기력증 ,,, 등등 핑계를 만들어 업데이트가 없었다. 지난 주에 jsp공부한다고 바빴음. 다음 회의까지 해올 것은 서비스 나누기 isEmpty() 문자열(String) 객체에서 사용되는 메서드로, 이 메서드는 문자열이 null이거나 길이가 0인 경우 true를 반환하며, 그렇지 않으면 false를 반환합니다. Spring Data JPA에서는 JpaRepository 인터페이스를 사용하여 자동으로 CRUD(생성, 읽기, 갱신, 삭제) 기능을 구현할 수 있습니다. JpaRepository는 Spring Data JPA에서 제공하는 기본적인 리포지토리 인터페이스 중 하나입니다. import org.springframework.data.jpa.repository.Jp..

Managed Language / Unmanaged Language

Managed Lanaguage 메모리 관리를 언어상에서 알아서 해주는 언어 특정 런타임 환경 내에서, 프로그램을 생성하도록 설계된 언어. 인터프리터나 VM을 지원하고, 프로그램의 코드가 이 위에서 동작하도록 설계되어 있음. (소스코드 컴파일 & 동작) VM은 메모리 관리(Garbage Collecotr) 역할을 수행한다. => Java나 Python 을 사용할 때, 메모리에 대한 생각은 하지 않고 작성한다. => JAVA, Python, C#, Javascript Unmanaged Language 사용자가 직접적으로 하드웨어 CPU, Memory 를 관리할 수 있다. VM과 같은 런타임 환경의 관리를 받지 않는 언어. 일반적인 컴파일 수행 >> bytecode 생성 >> 실행파일 생성 => C, C++..

RuntimeException / IllegalArgumentException

RuntimeException: RuntimeException 클래스와 그 하위 클래스들은 주로 프로그래머의 실수나 잘못된 프로그램 논리에 기인하는 런타임 시 발생하는 예외를 나타냅니다. 컴파일러가 이 예외들을 체크하지 않기 때문에, 코드에서 예외 처리를 강제하지 않습니다. 이는 프로그래머가 명시적으로 이 예외들을 처리하지 않아도 되는 편리함을 제공하지만, 동시에 적절한 처리가 이루어져야 합니다. IllegalArgumentException: IllegalArgumentException은 주로 메소드에 전달된 인수가 잘못된 경우에 발생합니다. 즉, 메소드의 매개변수로 전달된 값이 허용되지 않는 범위일 때 던져집니다. 예를 들어, 메소드가 특정 범위의 값을 요구하는데 그 범위를 벗어난 값을 받으면 이 예외..

[BleuAuction 리팩토링] 12/4(월) 종1's 코드리뷰

[해온 것] https://github.com/NC7-BleuAuction/bleuauction_be/pull/116 [Refactor, Test] Notice 도메인 작업 #113 by seunghyun333 · Pull Request #116 · NC7-BleuAuction/bleuauction_be 작업 PR #113 작업내역 Notice Controller 및 Service Refactoring Notice기능의 TestCase제작 다음 차례는 ,,, 두근두근 github.com 작업내역 Notice Controller 및 Service Refactoring Notice기능의 TestCase제작 열심히 Notice 도메인 작업을 했다. 컨트롤러에서 서비스로 로직 옮기기! 주문, 주문메뉴, 메뉴 3..

Optional

Optional은 Java 8에서 도입된 클래스로, 값이 존재할 수도 있고 없을 수도 있는 컨테이너. 주로 NullPointerException을 방지하고자 할 때 사용 => null인지 아닌지, 안전하게 판단하고 싶어서. 검증을 확실하게 하고 싶을 때. 권장 사용방법: getter에서만 쓰고, 비지니스로직에서는 나오지 않는게 맞음. optional (한개의 객체) == null 이 절대 성립이 안 함 : jpa에서는 절대 적용 안 됨. nullpointexception 발생하고 싶어도 발생을 못 함. ofNullable() 메서드: Optional.ofNullable(T value) 메서드는 주어진 값이 null이 아니면 해당 값을 가지는 Optional 객체를 생성하고, 값이 null이면 빈 Opti..

트랜젝션

트랜젝션이란? 원자성이란? 트랜젝션(Transaction) 작업의 완전성을 보장해주는 것으로, 논리적인 작업을 모두 완벽하게 처리하거나 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용이 되는 현상이 발생하지 않게 만들어주는 기능 사용자 입장 : 작업의 논리적 단위 이해 가능 시스템 입장: 데이터들을 접근, 변경하는 프로그램의 단위가 됨 특성 ACID 원자성(Atomicity) 만약 트랜젝션 중간에 어떠한 문제가 발생한다면 트랜젝션에 해당하는 어떤 작업 내용도 수행되어서는 안되며 아무런 문제가 없을 때만 모든 작업이 수행되어야 한다. 일관성(Consistency) 트랜젝션이 완료된 다음의 상태에서도 트랜젝션이 일어나기 전의 상황과 동일하게 데이터의 일관성을 보장해야한다. 고립성(Isolati..