전체 글
멀티테스킹과 멀티프로세싱
멀티테스킹CPU는 하나의 코어를 가지고있고 프로그램 두개를 동시에 실행을 한다고 가정했을때멀티테스킹 기술이 없다면 노래 프로그램의 코드를 실행한 뒤 문서작업 프로그램을 순차적으로 실행하게됩니다.이를 사용하는 사용자는 노래를 들으며 동시에 문서작업을 할수없어 불편함을 느낍니다.이를 해결하는 기술이 멀티테스킹입니다. 멀티테스킹 기술은 두 프로그램의 코드를 번갈아가며 실행시킵니다 이 과정은 보통 0.01초 단위로 수행되며 각 프로그램이 얼마나 실행될지는 운영체제가 결정합니다 이를 스케쥴링이라고 합니다.이렇게 번갈아가며 실행된 코드들은 두 프로그램이 동시에 실행되는것처럼 보이게 해줍니다. 멀티프로세싱현대의 CPU는 두개 이상의 코어를 가지고있습니다 두개의 코어를 가지고있다면 물리적으로 두개의 프로그램을 동시에 ..
첫 회사 SI 다닌지 2년 회고..
시작.첫 회사인 SI 회사를 다닌지 2년하고도 조금 지났습니다 회고를 너무 늦게하는것 같지만 지금부터라도 해보는게 어딘가 라는 생각으로 회고문을 써봅니다. 뭔가 일기를 쓰는것 같네요 초등학교 여름방학 숙제를 마지막으로 일기를 써본지가 언젠지... 기억도 안납니다. 일단 개발자로써의 2년은 이렇게 시작됐습니다.대학 졸업 후 싸피준비 결과는 면접에서 탈락싸피 탈락 후 분노의 이력서 돌리기그러던 중 다니고있던 대학 교육 프로그램에서 운좋게 중소기업 입사 현재 재직중인 회사.현재 재직중인 회사는 업무 외적으로는 만족스럽습니다. 주변사람도 너무좋고 분위기도 좋아요.하지만 업무적으로는 좀 그렇습니다.사업마다 같은 프로젝트 찍어내어 커스터마이징(단순 crud)코드의 품질보단 기간 안에 결과를 만드는것이 중요함(코드리..
엔티티를 DTO로 변환하는 방법들
개요숙소, 객실 목록을 가져와야 하는데 엔티티를 그대로 가져오게 되면 노출되지 말아야할 정보들이 그대로 오게됩니다.그래서 어떤방식으로 DTO를 만들어서 전달해야 깔끔하고 효율적일까? 라는 고민에서 시작했습니다. 개발 과정에서의 필요성백엔드 개발 시 엔티티와 클라이언트가 주고받는 DTO는 서로 다른 책임과 역할을 가집니다. 엔티티는 영속성 컨텍스트 관리, 비즈니스 로직 수행 등에 중점을 두는데 DTO는 클라이언트에 필요한 최소한의 데이터만 전달하는 것이 좋습니다. 그래서 DTO로 변화하는 다양한 방식들을 알아보고 각 방식의 장단점 및 적절한 사용 사례를 정리해 추후 선택에 도움이되도록 작성했습니다. DTO란 무엇일까?계층 간 데이터 교환을 위해 사용하는 객체.엔티티의 민감한 정보 노출 방지API 응답/요청..
CascadeType, orphanRemoval 둘의 차이는?
개요JPA의 oneToMany 사용 시 쓰이는 CascadeType과 orphanRemoval 의 차이를 알아봅니다. 궁금증숙소, 객실 관리 기능을 마치고 본격적으로 예약기능을 추가하려 도메인을 추가하던 중 @OneToMany(mappedBy = "stay", cascade = CascadeType.REMOVE, orphanRemoval = true) private List rooms = new ArrayList();Stay(숙소) 도메인 내 OneToMany의 속성들이 눈에 띄였습니다. 추가할때는 그냥 추가했지만 다시보니 이 두개가 같이 쓰여야할까? 라는 궁금증이 생겼습니다. cascadeJPA에서 엔티티를 다룰 때, 예를 들어 부모 엔티티를 저장하거나 삭제할 때 일반적으로 연관된 자식 엔..
RESTful API 리팩토링 후, 단위테스트 적용기
개요이번 글에서는 RESTful API 리팩토링 후 단위테스트를 적용하는 과정을 작성했습니다. RESTful API 리팩토링 글https://mommos1.tistory.com/103 RESTful 리팩토링 적용저번 글에서는 Roomy 프로젝트의 API를 좀 더 직관적이고 표준에 가깝게 만들기 위해 RESTful 원칙에 따라 리팩토링을 진행했습니다. URL은 자원의 명확한 식별자 HTTP 메서드(GET, POST, PUT, DELETE)는 해당 자원에 대한 행위를 명시하도록 개선하여 API의 예측 가능성과 사용성을 높이고자 노력했습니다. 리팩토링 후, 잘 돌아갈까?리펙토링 후 기능은 그대로지만 내부 구조와 호출 방식이 변경된 API들이 이전처럼 문제없이 작동할지 일일이 수동으로 검증하는 것은 많이 고통스..
RESTful API 로 리팩토링하기
개요기존에 개발한 관리자페이지 내 객실관리 API 에서 RESTful 한 URL과 HTTP 메서드의 의미를 반영해 리팩토링을 진행했습니다.이 글에서는 왜 리팩토링이 필요했는지 어떤 기준으로 설계했는지 그리고 어떻게 개선했는지를 정리합니다. 기존 코드의 문제점@PostMapping("/regRoom")public ResponseEntity adminRegStay(@RequestBody RoomRequest dto)@DeleteMapping("/delete/{roomId}")public ResponseEntity deleteRoom(@PathVariable Long roomId)URL에 행위 가 들어가있음 : regRoom, deleteHTTP 메서드가 이미 행위를 표현하고 있는데 URL에서도 중복 표현되고..