전체 글

https://school.programmers.co.kr/learn/courses/30/lessons/76503# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제에 대한 아이디어 위의 그림과 다르게 0이 root인 트리로 만들어봤다. 위 문제를 보면 어떤 노드를 루트로 선택하든 문제가 없어 보인다. 나는 가장 쉽게 노드 0을 선택해서 위의 그림처럼 트리를 만들었다. 고민을 하다가 생각해 낸 방법은 "모든 노드를 0으로 만들려면 리프 노드부터 0으로 만들면 되지 않을까" 였다. 리프 노드의 값을 parent로 보내 버린다. 즉 (2,2)와 ..
자바 웹 기술 역사 과거 기술 서블릿 - 1997 HTML 생성이 어려움 JSP - 1999 HTML 생성은 편리하지만, 비즈니스 로직까지 너무 많은 역할 담당 서블릿, JSP 조합 MVC 패턴 사용 모델, 뷰 컨트롤러로 역할을 나누어 개발 MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~ 2010년 초 MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원 스트럿츠, 웹워크, 스프링 MVC(과거 버전) 현재 사용 기술 어노테이션 기반의 스프링 MVC 등장 @Controller MVC 프레임워크의 춘추 전국 시대 마무리 스프링 부트의 등장 스프링 부트는 서버를 내장 과거에는 서버에 WAS를 직접 설치하고, 소스는 War 파일을 만들어서 설치한 WAS에 배포 스프링 부트는 ..
정적 리소스 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공 주로 웹 브라우저 HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달한다. 웹 브라우저 : HTML 해석 HTTP API HTML이 아니라 데이터를 전달한다. 주로 JSON 형식 사용 다양한 시스템에서 호출을 한다. 다양한 시스템에서 호출 데이터만 주고 받음, UI 화면이 필요하면, 클라이언트가 별도 처리 앱, 웹 클라이언트, 서버 to 서버 데이터를 바로 웹이나 앱에게 전해주는 것을 HTTP API라고 한다. (JSON 방식) 다양한 시스템 연동 주로 JSON 형태로 데이터 통신 UI 클라이언트 접점 앱 클라이언트 (아이폰, 안드로이드, PC 앱) 웹 브라우저에서 자바스크립트를 통한 HTTP API 호출 React,..
보통 요청이 들어오면 연결 부분에서 WAS 안의 Servlet을 호출한다. 과연 누가 호출하는 것일까?? 쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 스레드 자바 메인 메서드를 처음 실행하면 main이라는 이름의 스레드가 실행 쓰레드가 없다면 자바 애플리케이션 실행이 불가능 스레드는 한 번에 하나의 코드 라인만 수행 동시 처리가 필요하면 스레드를 추가로 생성 단일 요청 - 쓰레드 하나 사용 다중 요청 - 쓰레드 하나 사용 만약 다중 요청이지만 스레드를 하나만 사용한다면 요청 1 처리중에 쓰레드가 처리 지연이 발생하면 요청 2 또한 처리를 할 수 없게 된다. 결국 2개의 요청 모두 처리를 할 수 없다. 해결책은 그저 쓰레드 하나를 더 생성하면 된다. 장단점 장점 동시 요청을 처리할 수 있다..
웹 서버, 웹 애플리케이션 서버 모든 것이 HTTP, HTTP 메시지에 모든 것을 전송할 수 있다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC..
https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 무지와 어피치가 같이 택시를 타고 집에 간다. 무지의 집은 B고 어피치의 집은 A이다. S에서 시작해서 목적지 A와 B까지 도착할 때 최소 비용을 구하는 문제이다. 이 문제가 다른 문제랑 다른 점은 택시를 같이 타고 가다가 내릴 수 있다는 점이다. 위 문제에서 최소 비용의 예를 생각해 보자 4번에서 시작해서 5번까지는 둘이 택시를 같이 탄다. 그러면 34원 그리고 B, A까지 각각 택시를..
https://school.programmers.co.kr/learn/courses/30/lessons/77487 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 Dev-Matching: 웹 백엔드 개발자의 헤비 유저가 소유한 장소라는 문제이다. 간단하게 말하자면 2번이상 장소를 예약한 사람을 찾는 내용이다. 하지만 여기서 예약한 내용의 모든 요소를 뽑아내야 한다. SELECT * from places where host_id in ( select host_ID from places group by HOST_ID having count(HOST_I..
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 40이 될려면 10에 2를 2번 곱한다. 40이 될려면 10에 30을 더한다. 2가 5가될 방법이 없다. 문제에 대한 아이디어 및 구현 문제를 보자마자 느낀점은 최적의 상황만 선택해서 구해줘야 할 것 같았다. 그래서 그리디를 사용해볼까 였다. 하지만 생각해야할 조건이 너무 많아진다는 느낌을 받았다. 지금까지 문제를 풀면서 그리디로 풀면 좋을거 같은데 생각해야할 조건이 너무 많을 때는 DP를 사용..
Wooooong!!
취준생의 공부