본문 바로가기

전체 게시글376

[CS] Network Connection : Bridged와 NAT의 차이 Network Connection 설정 원격 서버에 톰캣 서버를 배포하려고 했다. 그전에, Virtual Machine Settings에서 Bridged로 설정했을때는 원격 서버에서 문제가 없었으나, putty를 사용해서 원격으로 접속하려고 했을때는 에러가 계속해서 발생했다. 따라서, 우선 Bridged 방식과 NAT 방식의 차이에 대해서만 알고 넘어가고자 한다. (참고한 블로그이다. https://m.blog.naver.com/a5341663/221764145616 ) Bridged: 물리적인 네트워크 인터페이스(랜선 등)에 연결되어 있어야 한다 문제는, Bridged 방식은 VM이 물리적인 네트워크 인터페이스에 직접 연결되어 있을때 사용하는 방식이다. 이는 랜선을 사용하여 호스트 컴퓨터와 물리적인 네.. 2023. 4. 6.
[BaekJoon] 백준 알고리즘 2470번 / 두 용액 / 투포인터 / Python 문제 접근방법 투 포인터를 이용하여 효율적으로 용액을 선택해나가며 최적해를 찾는 알고리즘이다. 먼저 용액을 오름차순으로 정렬한 후 시작점 start와 끝점 end를 지정하고 두 용액의 합인 mix를 계산한다. 그리고 두 용액의 합의 절댓값이 더 작은 경우 ans와 res를 업데이트한다. 그리고 mix가 0보다 작으면 start를 증가시켜 더 큰 용액을 선택하고, 0보다 크면 end를 감소시켜 더 작은 용액을 선택한다. mix가 0이면 루프를 종료한다. 코드 """ 1. 아이디어 1) N(전체 용액 수)를 입력받아서 sort()를 통해 오름차순으로 정렬 2) for문에서 포인터(start, end)를 이동시키며 최적값(용액 합 0) 도출 2. 시간복잡도 - N(전체 용액 수)는 최대 100,000 이다. .. 2023. 4. 5.
[Java] MVC 프레임워크에서 @RequestMapping 애노테이션 설정을 활용한 매핑하는 클래스 뜯어보기 [Java] @Controller 애노테이션 설정 클래스 스캔하는 ControllerScanner 클래스 뜯어보기 ControllerScanner 생성자 ControllerScanner 클래스가 생성될 때, basePackage를 입력받는다. 입력받은 basePackage를 이용해 reflections 객체를 생성한다. private Reflections reflections; public ControllerScanner( Object...basePack starting-coding.tistory.com 앞에서 @Controller 설정이 되어 있는 클래스를 찾았다. @RequestMapping 애노테이션이 설정된 메서드 아래를 보자. 찾은 컨트롤러 클래스의 @RequestMapping 애노테이션 설정을.. 2023. 4. 4.
[Java] @Controller 애노테이션 설정 클래스 스캔하는 ControllerScanner 클래스 뜯어보기 ControllerScanner 생성자 ControllerScanner 클래스가 생성될 때, basePackage를 입력받는다. 입력받은 basePackage를 이용해 reflections 객체를 생성한다. private Reflections reflections; public ControllerScanner( Object...basePackage) { reflections = new Reflections(basePackage); } getControllers() reflections 객체를 이용하여 @Controller 어노테이션이 적용된 클래스들을 스캔한다. 스캔된 클래스들을 instantiateControllers() 메서드를 통해 객체화한다. 객체화된 Controller 인스턴스들을 Class와 .. 2023. 4. 4.
[Java] Class 클래스 / 리플렉션 / 동적로딩 Class 클래스 자바의 모든 클래스와 인터페이스는 컴파일 되고 나면 class 파일로 생성된다. 예를 들어, a.java 파일이 컴파일 되면 a.class 파일이 생성되고 이 class 파일에는 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등의 정보가 들어간다. 이때, Class 클래스는 컴파일된 class 파일에 저장된 클래스나 인터페이스 정보를 가져오는 사용한다. Class 클래스 사용하는 이유 프로그래밍에서 변수를 선언할 때 자료형을 미리 파악하고 그 자료형에 따라 변수를 선언한다. 클래스를 사용할 때도 이미 그 클래스의 정보(변수, 메서드)를 알고 있는 상황에서 프로그램을 만든다. 그런데 반환받는 클래스가 정확히 어떤 자료형인지 모르는 상황도 있다. 이때, Class 클래스를 활용해서 이 .. 2023. 4. 4.
[Servlet-jsp] 서비스(Service) 클래스 추가를 통한 컨트롤러 중복 제거 Controller에서 발생하는 코드의 중복 질문 삭제 기능을 아래와 같이 웹 어플리케이션과 모바일 모두에 대응하기 위해 2개의 Controller를 구현할 때 생기는 중복을 어떻게 제거할까?.. 고민해 볼 만한 문제이다. 우선, 코드 구현을 위해 아래 요구사항을 보자. 댓글이 없는 경우 질문 삭제가 가능하다. 질문자와 답변자가 모두 같은 경우에만 질문 삭제가 가능하다. 질문자와 답변자가 다른 답변이 하나라도 있으면 질문을 삭제할 수 없다. 위 요구사항을 만족하는 컨트롤러를 구현한 코드를 살펴보자. 모바일을 지원하는 DeleteQuestion컨트롤러이다. JsonView를 반환한다. public class ApIDeleteQuestionController extends AbstractController .. 2023. 4. 1.