일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2024회고
- OS
- 테크쇼
- Service 계층 테스트
- softeer
- Test Doulbe
- mapstruct
- FCM
- Server
- Junit 5
- 인프콘2023
- JPA
- ExceptionResolver
- Coputer Science
- Java
- 소프티어
- 공룡책
- MySQL
- 직장인 회고
- Spring
- 자바
- 갓생
- 일상
- Test
- proxyFactory
- enumSet
- modelmapper
- db
- Test code
- 2025 계획
- Today
- Total
목록전체 글 (60)
공부내용공유
서론 Deque를 사용하면서 아무생각 없이 ArrayDeque를 사용하고 있었는데 다른 코드에서 LinkedList 로 Deque를 구현한것을 보았고 또 Deque 구현체가 꽤 많은것을 알게되었다. Deque 구현체들에 대해 간단히 조사하고 정리하고, ArrayDeque와 LinkedListDeque 사이에 차이가 있고 무엇이 더 효율적일지 찾아보면서 이 글을 작성하게 되었다. 본론 Deque 란? 간단하게 Deque에 대해 설명하자면 원소의 추가와 삭제를 양쪽 끝부분에서 지원하는 자료구조이다. Deque는 사용자가 입구로만 나오고 삭제하게 하면 stack으로 입구로만 들어가고 출구로만 나오면 queue 로 사용할 수 있다. Java 에서 Deque 자바에서 Deque는 인터페이스로 되어져 있고 이를 구..
서론 현재 진행중인 프로젝트에서 잘만 돌아가던 API 가 안된다고 프론트 팀원분에게 연락이 왔고 나는 로그를 보고 오류를 확인을 했는데 다름이 아닌 다른 파트를 맡은 친구가 자신의 파트에서 기능 일부분을 수정했고 자신의 파트만 되는지 시행해 보고 PR 을 넣었던 것이다. 나도 그냥 기능을 수정했나 보다라고 간과하고 PR을 받았고 그 결과 내가 만들었던 API가 영향을 받아 오류가 났던것이다. 이를 경험하고 Test Code 의 중요성을 깨닫고 PR 을 넣을때는 적어도 Unit Test 는 모든 파트에서 돌려보고 넣는게 맞겠구나 라는 생각이 들어 Test Code 를 작성하게 되었다. 본론 Service 계층에서의 Test Code 를 먼저 작성하였다. 이 글에서는 내가 진행한 프로젝트에서 Junit 5 ..
1.3 Computer-System Architecture 1.3.1 Single-Processor System 프로세서의 종류를 2개로 나누자면 General Purpose Processor 우리가 흔히 생각하는 프로세서이다. 다양한 종류의 instruction set 을 실행할 수 있다. Special Purpose Processor 특정한 instruction 만 수행하는 프로세서이다. 예시로는 disk-controller microprocessor가 있다. 이렇게 된다. 이때 special processor는 main processor에게 명령을 받고 업무를 수행하는 경우도 있고, 애초에 하드웨어에 종속된 상태로 main processor와 독립적으로 업무를 수행하는 경우도 있다. Single P..
Static Page 와 Dynamic Page Static page Web Server는 경로와 일치하는 File Contents를 반환한다. 항상 동일한 페이지를 반환한다. html, css, javascript 파일등등 DB가 사용되지 않는다. loading 시간이 dynamic page 보다 훨씬 적다 Dynamic Page 인자의 내용에 맞게 동적인 페이지를 반환한다. 즉, WAS 에서 실행되는 프로그램에(servlet, jsp) 의해 만들어진 결과물 1번째 사진의 doGet을 servelt에다 구현한다. DB 가 사용되어진다. loading 시간이 상대적으로 길다. Web Server 와 WAS 의 차이 Web Server Web Server 의 개념 소프트웨어와 하드웨어로 구분된다. 하드웨어..
1.1 what os do computer system은 크게 4가지로 나뉘어 질 수 있다. hardware operationg system application programs - web browser, complier, proccessor user 운영 체제는 일종의 정부 역할이다. 정부는 그 자체로 편의 기능을 제공해준다기 보단 다른 시설에서 편의 기능을 제공할 수 있게 환경을 만들어준다. 운영체제가 그렇다. 기능적인 측면에서 보면 HW 의 효율적인 사용, 어플리케이션의 실행을 해주는 resource allocator control program 이다. 운영체제에 관한 시점에서 컴퓨터에있는 프로그램들을 나눠볼 수 있는데. kernel → running all time on the computer 운..
서론 지금까지 알고리즘 문제를 python으로만 해서 문제를 풀 때 자료형에 관해서 크게 고민을 하면서 푼적이 없었다. 요즘 자바로도 코딩 테스트 연습을 하고 있는데 array 와 list 를 언제 쓰고 어떻게 쓰는지에 대해 이해도가 부족함을 느껴 정리하고자 이 글을 작성하였다. 목차 Array 란 List 란 장,단점 활용법 본론 Array 란? 여러 데이터들이 index (식별자) 와 값으로 구성된 자료구조 index 는 유일한 식별자이다. 논리적 저장 순서와 물리적 저장 순서가 동일하다 index를 통한 접근이 O(1) 이다. 캐시 hit 가 일어나기 좋다 초기에 크기를 정하고 , 컴파일 이후 크기 변경이 불가능 하다. 연속된 메모리 공간으로 이루어져 있다. List 란? 순서가 있는 엘리먼트의 모..
서론 docker 를 공부하다가 docker 가 linux 의 name space 를 기반으로 만들어졌다는걸 알게되었고 docker 를 보다 더 잘 이해하려면 이 기반이 되는 기술부터 잘 알아야겠다 생각이 들어서 정리를 하게 되었다. 목차 리눅스 네임 스페이스란? 네임 스페이스 종류 리눅스 네임 스페이스란? 컨테이너 기반 가상화 기술의 기반이 되는 기능이다. 하나의 시스템에서 사용되지만 별개의 독립 공간처럼 격리된 환경을 제공하는 light weight 가상화 기술이다. 빌라에 각 층, 호수 별로 독립되어진 주거환경을 제공하는것과 유사하다. 이렇게 네임스페이스의 특징을 보면 하이퍼바이저 (hypevisor) 와 유사한것처럼 보이지만 둘은 차이가 있다. 하이퍼바이저 하드웨어를 물리적으로 구분해서 가상화를 ..
서론 현재 진행중인 프로젝트에는 주요 Domain은 강의 와 강사이다. 이 두 도메인은 필드 들도 많고 다양한 화면에 노출되고 다양한 로직에 사용이된다. 기본적인 Create, Update를 위한 dto들도 당연히 있지만 제일 많은것들은 Read에 관련된 Dto들이다. Dto들에도 굉장히 많은 filed들이 있고 처음에는 entity 에서 dto를 만들때 builder 패턴을 사용해서 하나하나 다 코드를 쳐서 만들었다. 그러나 프로젝트를 진행하면서 디자인이나 기획이 바뀌는 경우가 종종 있었고 이때마다 entity에도 정보가 추가되는 경우도 있었다. 이때마다 모든 builder를 돌아다니면서 하나하나 추가하는것은 잦은 실수를 유발했고 이를 어떻게 해야하나 고민하면서 Mapper에 대해 알게 되었다. 본론 ..
05월 24일 현대차그룹에서 주최한 소프티어 (softeer) meetup 1기를 갔다왔다. //사진첨부 스케줄은 1. 아이스 브레이킹 2. 제네시스 원 앱 프로젝트 세션 3. 공통편집 기술을 통한 FMS 양방향/실시간 동기화 4. 차량 데이터 기반으로 도로 이상상태 고객에게 알림하기 5. 네트워킹 이렇게 구성되어 있었다. 아이스 브레이킹은 초성퀴즈 3문제 정도를 준비하셨는데 한문제도 못맞췄다.. 다들 너무 빠르게 손을 드셨다... 각 세션은 해당 프로젝트에 대한 간단한 설명과 프로젝트를 진행하면서 겪은 문제들 (해결한 문제들과 해결중인 문제들 아직 해결치 못한 문제 등등) 어떻게 해결했고 어떤 기술을 사용했으면 앞으로 어떤 방향으로 프로젝트를 끌고 나가고 개선할건지에 대한 설명을 해주셨다. 기술 스택이..
서론 현재 프로젝트에서 Service 계층 테스트를 service 계층은 2개의 계층과 연결되어 있는만큼 굉장히 다양한 기능들에 의존을한다. RDB connection, 데이터 세팅, Mapper, Spring context 등등 구글링을 했을때 spy, mock 등등 다양한 어노테이션을 사용하는것을 보았는데 정확히 어떤 역할을 해주고 어떤때 사용해야하는지 몰라서 이를 정리하기 위해 이 글을 작성하였다. Test Double test double이란 테스트 하려는 코드 부분을 제외한 나머지 코드로부터 영향을 받지 않고 테스트를 진행하기 위해 가상의 객체를 생성하여 주입하는것을 말한다. Test Double을 통해 테스트에 의존적인 객체, DB, 여러 설정 정보들로부터 격리시켜 테스트 속도를 높일 수 있다..