일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- cs지식
- CS면접
- CS
- JPA
- 스프링시큐리티
- rabbitmq
- 소켓
- 스프링부트
- jwt토큰
- 소켓통신
- 채팅구현
- MongoDB
- 스프링소켓통신
- jwt
- 자바문법
- OS
- springboot
- 운영체제
- 단위테스트
- spring
- Security
- Stomp
- 반효경
- 테스트코드
- 스프링
- 자바
- java
- Mock
- 기술면접
- socket
- Today
- Total
목록CS (7)
Dev_Henry
우테코 프리코스를 진행하다보면 배워갈게 많다고 해서 프리코스를 진행중이다. 과제의 요구사항이 적다보니 1주차는 별 생각없이 구현을 했었는데 사람들을 보니 전부 MVC패턴으로 구현하고 있더라.. 그래서 2주차는 나도 좀 분리를 해서 작성했는데, 음 여전히 요구사항 자체가 별로 없다보니 굳이 잘게잘게 분리하는게 비효율적으로 느껴져서 적당한 크기로만 분리했었다. 그리고 이번 3주차 과제는 좀 더 본격적으로 분리를 하려고 했다. 분리를 하는김에 spring을 흉내내서 각각 객체들을 싱글톤으로 관리하고, 처음 프로젝트를 돌릴때 의존성 주입방식으로 생성해주면 더욱 효율성 좋고 유지보수가 편리하도록 만들 수 있을것 같아서, 이렇게 진행하려한다. 보통 싱글톤을 간단하게 구현하는 방식으로는 lazy initializat..

이제까지 프로젝트를 하면서 값을 주고 받을 때 다양한 방법으로 객체와 데이터를 매핑시켰다. 그런데 구체적으로 어떻게 매핑이 되는지 이해하지 못한 상태로 사용하다보니 종종 에러가 발생하는 경우가 있었기 때문에, 이에 대해서 공부해보려 한다. 우선 objectMapper와 modelMapper를 알아본 뒤에 아래에서 간단한 테스트도 진행해 보겠다. 우선 객체 데이터를 json으로 주고받을때 많이 사용하는 objectMapper. @RequestBody는 내부적으로 objectMapper를 사용한다. 스프링 부트에서는 기본적으로 jackson이 내장되어있고, 여기에 objectMapper클래스가 있다. 직렬화를 할때는 getter를 통해 필드 값을 알아내고 값을 내보낸다. 즉 getter가 필요하다. (맴버변..

코딩을 할 때 다양한 언어들을 사용하다 보니 조금씩 다른 기본 문법으로 헷갈릴 때가 많다. ' 와 " 에 별 차이가 없는 언어들도 많고 문제가 생긴 적이 없어서 이제까지 신경 쓰지 않고 지나갔었는데 오늘 코딩을 하다 에러가 생겼다. 찾아보니 자바에서 따옴표는 문자 char타입을, 쌍따옴표는 문자열 string타입을 감싼다고 한다. 문자가 1개던 여러 개 던 보통 "를 많이 사용했어서 이제껏 동작에 에러 없이 사용했었던 거 같다. 공부를 하다 보면 문법이 조금씩 다른 여러 언어를 사용하니 사소한 문법을 생각 못하고 지나칠 때가 많은데 그 사소한 차이 때문에 예상치 못한 문제가 생길 수도 있으니 더욱 신경 써야겠다.
public void 함수(String...props){ } 공부를 하다가 위와 같은 문법의 코드를 만났다. 이게 뭐지 싶어서 찾아봤는데 자바에서 가변 매개변수를 받는 문법이었다. 찾아보고 나니 예전에 자바 공부를 하면서 배웠던 게 어렴풋이 기억이 난다. 여러 언어를 공부하다 보니 안 쓰다 보면 까먹어버리는 문법이 많은데 이런 편리한 문법이 있는 것도 기억 못 하고 구현하려고 하면 나만 손해니까 잘 기억해 두자. public void 함수(String s1) { } public void 함수(String s1, String s2) { } public void 함수(String s1, String s2, String s3) { } 들어오는 매개변수가 상황별로 다를 때 위와 같이 오버로딩을 하는 게 기본인데..

프로세스의 개념 context : 프로세스의 문맥 → 프로세스의 상태를 나타내는데 필요한 요소들 cpu수행 상태를 나타내는 하드웨어 문맥 ( PC, register ) 프로세스 주소 공간 (stack,data,code) 프로세스 관련 커널 자료구조 (PCB) 프로세스의 상태 Running : cpu를 잡고 instruction을 수행중인 상태 Ready : cpu를 기다리는 상태 ( 다른 조건을 모두 만족한 상태로) Blocked (wait,sleep) : 당장 cpu를 줘도 수행할 수 없는 상태. (다른 이벤트를 기다리는 상태) new : 프로세스 생성중 Terminated : 수행이 끝난 상태. (정리중) 위 그림에서 큐는 커널 데이터 영역에 있음 PCB ( process control block )..

컴퓨터 시스템 구조 cpu - 클럭마다 메모리에서 읽어서 수행 반복 ( PC가 가르키는 메모리 주소 읽어서 수행.) register: 저장공간 mode bit : 유저레벨(1), 커널레벨(0) 구분. 인터럽트 발생 시 커널모드로 전환하여 처리. 보안 목적으로 유저레벨에서 커널(os)의 기능(io)을 사용하기 위해서는 시스템콜(인터럽트의 일종) 필요 interrupt line: 인터럽트 받음 memory Controller : 메모리에 cpu와 dma 모두 접근 가능하기 때문에 충돌이 생기지 않도록 중재 DMA (Direct Memory Access) Controller: cpu가 인터럽트를 많이 당해서 일을 하기 힘듬. 인터럽트가 자주 발생하는 io장치의 일이 끝나면 dma가 직접 메모리에 올려주고 cp..

운영체제란 : 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 소프트웨어와 하드웨어를 연결해주는 소프트웨어 계층. 좁은 의미의 운영체제 : 커널. 핵심부분으로 메모리에 상주하는 부분 넓은 의미 : 커널을 포함하여 주변 시스템 유틸리티를 포함한 개념. 운영체제 목적 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공. 컴퓨터 시스템의 자원(하드웨어+소프트웨어)을 효율적으로 관리. 프로그램을 각각 독자적으로 수행되는 것처럼 환경을 제공. 하드웨어를 다루는 복잡한 부분을 수행 운영체제의 분류 동시작업 가능 여부 단일작업(싱글테스크) : ms-dos 다중작업 사용자 수 단일 사용자 다중 사용자 처리 방식 일괄 처리 (배치 처리) 일정량 모아서 한번에 처리. 작업이 완전 종료될때까지 기다려야함. 시분할 ( 일반적..