Programming
GET API 만들기
다음처럼 Controller 패키지에 GetController를 생성한다.package com.springboot.api.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/v1/get-api") public class GetController { }매개변수가 없는 GET 메서드 구현GetController내에 @GetMapping(”/name”) Annotation을 사용하여 메서드를 생성한다.추후에는 메서드 형식에 맞게 다음처럼 Annotat..
프로젝트 생성하기
다음 사이트에 접속한다.Spring InitializrInitializr generates spring boot project with just what you need to start quickly!https://start.spring.io/ 위와같이 설정한 후 GENERATE를 눌러 프로젝트를 생성한다. 위와 같이 com.springboot.hello에 Controller 패키지를 생성한다.이후 HelloController 클래스를 작성한다.package com.springboot.hello.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotat..
Talend API Tester를 통해 동작 테스트를 해보자
크롬 확장 프로그램을 이용하여 API를 테스트해보자. 다음 사이트로 들어가 확장 프로그램을 설치한다.Talend API Tester - Free EditionVisually interact with REST, SOAP and HTTP APIs.https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm?hl=ko이후 크롬 브라우저에서 해당 확장 프로그램을 실행한다.URI 위치에 테스트용 API, 다음을 입력한다.https://jsonplaceholder.typicode.com/todos/1결과를 확인한다. Uploaded by N2T
멀티 프로세서 스케줄링
개요 멀티 코어 프로세서 하나의 칩에 여러 CPU 코어가 내장 CPU를 더 추가해도 단일 애플리캐이션이 더 빨리 실행되는 것은 아니다. threads 를 이용하여 병렬 실행되도록 작성해야 한다. 캐시 작고, 빠른 메모리 캐시에 저장된 공유 리소스 데이터의 일관성 문제 버스 스누핑 각 캐시는 자신과 메모리를 연결하는 버스의 통신 상황을 계속 모니터링 CPU가 캐시에 보유한 데이터 항목에 대한 업데이트를 발견하면 변경 사항을 인식하고 복사본을 무효화하거나 업데이트 함 → CPU를 통해 공유된 데이터에 접근할 때는 정확성을 보장하기 위해 상호 배제가 필요하다. 락(lock)을 사용하여 해결한다. → 가능한 동일한 CPU에 프로세스를 유지시킨다. 다중 프로세서 스케줄러는 캐쉬 친화성을 고려해야 한다. 단일 큐 ..
싱글 프로세서 스케줄링
제한적 직접 실행 원리 OS는 시간 공유를 통해 물리적 CPU를 공유한다. 이를 이용하여 여러 작업들이 동시에 실행되는 것처럼 보이도록한다. 이를 구현하기 위해서 성능 저하, 제어 문제 를 해결해야 한다. 제한적 직접 실행 프로그램을 빠르게 실행하기 위하여 제한적 직접 실행 기법을 사용한다. 이는 단순히, 프로그램을 CPU 상에서 그냥 직접 실행시키는 것이다. 문제점 사용자가 잘못된 일을 한다면 판단하기가 쉽지 않음 OS가 CPU의 제어 권한을 얻는 것이 쉽지 않음 개요 스캐줄링 현재 프로세스를 중단하고 다른 프로세스를 실행하기로 결정 → 운영체제는 문맥교환(Context Switch)코드를 실행 워크로드 프로세스가 동작하는 일련의 행위 아래 스케줄링 방법은 다음을 가정한다. 작업은 동일한 시간 동안 실..
[JAVA/EXCEPTION] Class ConcurrentModificationException
ConcurrentModificationException (Java SE 19 & JDK 19) 발생 다음과 같은 코드가 있다고 하자. TreeSet을 사용하였으며, 값이 중복되지 않게 들어가며, item 값이 오름차순으로 출력된다. 원하는 출력은 중복이 포함되지 않으므로 2, 3, 5 순서대로 개행되면서 출력되는 것이다. import java.util.TreeSet; public class ExceptionTest { public static void main(String[] args) { TreeSet treeSet = new TreeSet(); treeSet.add(3); treeSet.add(3); treeSet.add(2); treeSet.add(5); for (int item : treeSet..
[Python] 단위 테스트를 해보자 UnitTest
참조 문서 링크입니다. 전체 코드 링크입니다. 메소드명 설명 assertEqual(first, second, msg) first 와 second가 같은 지 확인 assertNotEqual(first, second, msg) first 와 second가 다른지 확인 assertTrue(expr, msg) expr 값이 True 인지 확인 assertFalse(expr, msg) expr 값이 False 인지 확인 assertIs(first, second, msg) first와 second가 같은 object 인지 assertIsNot(first, second, msg) first와 second가 같은 object가 아닌지 assertIn(member, container, msg) member가 contai..
[Python] Logging 모듈을 사용해보자
아래 문서를 참조하여 작성하였습니다. 문서 링크 전체 코드는 다음 링크를 참조해주세요 전체 코드 링크 로깅이 뭔데? 코드를 작성하다보면, 현재 특정 변수의 값이 잘 들어갔는지 확인해보거나, 오류가 발생하면 오류에 관련된 메시지를 출력하는 작업을 의미한다. 그래서 왜 쓰는데? Q : 그냥 print() 쓰면 되는거 아닌가? A : 로깅을 사용하게 되면 로그의 중요도에 따라 필터링 하여 확인할 수 있으며, 콘솔 출력 뿐만 아니라 파일로도 저장하여 추후 조회가 가능하다. Q : 나는 그냥 단순 출력만 쓰고 싶은데? A : 단순 콘솔 출력을 위한 것이라면 print()가 해당 작업을 위한 최상의 도구가 될 수 있다. 로깅의 수준 로깅의 수준은 다음과 같이 5단계로 나뉜다. 수준 사용할 때 DEBUG 상세한 정보..
안드로이드 스튜디오 SHA 키 발급받기
안드로이드 스튜디오 -> Terminal -> "gradlew signingReport" 입력 gradlew signingReport 안드로이드 SHA 키 발급
Java 이클립스 톰캣 서버 연결
이클립스 내 Server 탭이 없는 경우 Eclipse IDE for Eclipse Committers 로 받았을 가능성이 높음 Eclipse IDE for Eclipse Committers | Eclipse Packages Package Description Package suited for development of Eclipse itself at Eclipse.org; based on the Eclipse Platform adding PDE, Git, Marketplace Client, source code and developer documentation. Click here to file a bug against Eclipse Platform. Click here t www.eclipse.org..