일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 성장형마인드셋
- 99클럽
- 스프링
- 향상된for문
- staging_area
- SQ3R
- Spring
- 스레드동기화
- 파일사용권한
- 날씨API
- 4A피드백
- 프로그래머스
- 배열탐색
- 루트사용자
- 프로젝트
- API
- 네이티브애플리케이션
- 제너릭메서드
- string메서드
- 참조변수타입변환
- openapi
- 자바
- Java
- 동전교환알고리즘
- 백준
- SQL
- ChatGPT
- 재귀적사고
- API명세서
- 코딩테스트
- Today
- Total
목록Java|Spring (6)
개발 공부용
가변 인자는 매개변수 개수를 유동적으로 받을 수 있는 기능이다.메서드나 생성자를 호출할 때 인자의 개수를 정하지 않고 넘길 수 있게 해준다. public void printNames(String... names) { for (String name : names) { System.out.println(name); }} 이와 같이 타입 뒤에 ... 을 붙여 사용한다. 가변 인자 규칙가변 인자는 내부적으로 배열로 처리된다.하나의 메서드에 가변 인자는 하나만 사용 가능하다.가변 인자는 마지막 매개변수여야 한다. 데이터가 외부에서 바뀌면 안될 때나 멀티스레드 환경에서는일관성과 불변성을 위해서 가변 인자를 받아서 불변 리스트(List.of)로 만든다. //불변 리스트 아닌 경우BasicIn..
소프트웨어 테스트 소프트웨어의 기능과 동작, 데이터 등이 의도한 대로 처리되는지 확인하는 과정.결함을 찾아내고 수정한다.독립적으로 격리된 환경을 만들고특정 조건을 세팅하고코드를 실행하여내가 의도한 것과 결과값이 같은지 검증하는 것 테스트코드: 테스트를 반복할 수 있는 틀테스트를 반복적으로 실행 가능하므로 문제 상황을 빠르게 재현해야 한다.또한 테스트코드에는 의도한 시나리오 담겨있으므로 문서로서도 기능한다.소프트웨어 테스트!=테스트 테스트코드 작성 패턴: Give - When - Then Given: 시나리오테스트 준비과정, 테스트에 필요한 변수, 입력값 준비When: 실행실제로 테스트 실행해보는 관계Then: 검증예상값과 테스트 결과값을 비교하여 검증 테스트 코드에 사용하는 Annotation @Spr..
ORM(Object-Relational Mapping) 객체 지향 프로그래밍 언어의 객체와 관계형 데이터베이스의 테이블을 자동으로 연결해주는 기술SQL 대신 객체 중심의 코드로 데이터 조작 가능 ORM이 제공하는 핵심 기능객체와 테이블의 매핑: 클래스 테이블, 객체 필드 테이블 컬럼 연결 자동화CRUD 기능 자동화: 생성, 읽기, 수정, 삭제 작업을 객체 중심으로 제공영속성 관리: 객체의 상태를 추적하고 DB에 동기화트랜잭션: 데이터의 일관성 보장(트랜잭션, 롤백, 커밋 자동 관리)객체 지향 쿼리 지원: 객체 중심의 쿼리 제공 ORM의 단점 성능 저하 가능성: 내부적으로 복잡한 작업을 수행하는 ORM=> 복잡한 조건이나 대량 데이터 처리 시 직접 작성한 SQL 대비 성능 저하 발생복잡한 쿼리 작성의..
Websocket 운영에서 고려할 요소연결 상태연결된 클라이언트 수신규 연결연결 종료 빈도 메시지 처리 성능메시지 지연 시간메시자 처리량리소스 사용량CPU, 메모리 사용량File Descriptor 사용 현황에러 및 예외websocket 연결 에러전송 실패 빈도 Websocket을 비즈니스적으로 봤을 때과거 사용자들 : 접속 상태 확인/메시지 즉시 전달 선호요즘 사용자들: 반응 기능(좋아요, 공지 등) 선호 사용자가 서비스를 자주, 오래 이용할 수록 매출 발생 가능성이 높아짐-> Websocket 세션 수를 모니터링/기록함으로써 유저 활성도 지표 체크 필요-> 또한 성과를 비즈니스적으로 증명할 수 있음-> 이러한 모니터링을 돕는 것이 External Broker Simple Broker(In-Memo..
Websocket 웹소켓은 하나의 TCP 연결을 공유하여 실시간 양방향 통신을 제공하는 기술이다.텍스트 채팅 서비스에 주로 사용되며 화상 회의 서비스도 구현할 수 있으나, 화상 회의에는 주로 WebRTC 기술을 사용한다. 클라이언트는 서버에 소켓을 연결한 상태를 유지하여 언제든지 서버에서 보낸 데이터를 받을 준비를 하고 있다.HTTP 통신은 지속적으로 데이터를 요청하는 폴링의 방식을 사용해야 하지만 웹소켓은 그럴 필요가 없다. Websocket의 특징기본 웹소켓은 낮은 수준의 프로토콜로 제공하는 기능이 제한적이라 구현 부담이 크다.웹소켓 세션도 관리가 되지 않아 따로 관리를 해야 한다. -> 그래서 필요한 것이 STOMP어느 한 쪽에서 연결 종료를 요청하거나 네트워크 문제가 발생하면 연결이 닫히고 통..
IoC(Inversion of Control): 제어의 역전 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것.객체의 관리를 컨테이너에 맡겨 제어권이 넘어간 것을 제어의 역전이라고 함. #class A에서 new 키워드로 class B의 객체 직접 생성public class A { b = new B();} #외부에서 관리하는 객체 사용(스프링 컨테이너가 객체를 관리, 외부 == 스프링 컨테이너/IoC 컨테이너)public class A { private B b;} DI(Dependency Injection): 의존성 주입 제어의 역전을 구현하기 위해 사용하는 방법이 DI이다.DI에는 3가지 방법이 있다.생성자를 통한 DI(권장)필드 객체 선언을 통한 DIsetter..