알고리즘 타임어택이 있던 당일
금일 9시부터 11시까지 Python 또는 Java를 이용해서 문제를 해결
솔직히 알고리즘에 자신이 없었지만 한번 풀어보자는 생각을 했다.
문제를 확인해보니 엥?.... 쉬운데?...
난이도는 쉬워서 수월하게 문제를 풀 수 있었지만, 프로그래머스를 처음으로 이용해봐서 계속 런타임이 났다..
그 이유는 코드 전체를 쓰는 것이 아니라, 로직부분만 구현했으면 됐다는... :(
로컬에서는문제가 없는데 계속 런타임 오류가 나서 시간을 많이 소모했다.
문제의 난이도는 프로그래머스 0단계 수준 조금만 생각하면 충분히 누구나 풀 수 있는 문제들이었다.
나는 기존에 자주 사용하던 Java를 이용해 문제를 해결했고, 4문제의 문제가 출제되었는데 4문제를 다 해결했다.
문제는 다음과 같다. (프로그래머스 코딩테스트 연습 문제)
1. 369 게임 -> 입력받은 수에 3,6,9에 따라서 박수를 몇번 처야하는지 count
https://school.programmers.co.kr/learn/courses/30/lessons/120891
2. 할인 -> 가격에 따라 주어진 할인율이 있는데, 입력받은 수에 따라 할인률을 적용하고 지불금액 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/120818
3. 각도기 -> 매개변수로 주어진 각도에 따라 결과 값을 return 하는 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120829
4. 로그인 -> 입력받은 id,pw를 2차원 배열 속 정보와 비교해 로그인 유무를 return 하는 함수 작성하기
https://school.programmers.co.kr/learn/courses/30/lessons/120883
너무 쉽게 풀 수 있어서 정리라고 할 것이 없다..
그리고 인프런 Spring MVC 1탄 다시 정주행
웹 애플리케이션 서버 vs 웹 서버
비슷한 느낌을 주는 이 용어들은 경계가 모호하다. 그래서 간단한 특징들을 정리하고 장점과 단점을 통해 기억할 수 있도록 해야한다.
장점은? -> 둘 다 HTTP를 기반으로 동작
단점은? -> 웹 서버 같은 경우엔 정적 리소스를 제공하기에 특정 사용자에게 다르게 보여주는 방식이 불가능하다
그러나 WAS(웹 애플리케이션 서버)는 웹 서버의 기능을 포함하며, 프로그램 코드를 실행해서 애플리케이션 로직을 수행할 수 있다.
보통 Web Server는 정적 페이지랑 가깝다 생각하면 되고, Web Application Server는 동적 페이지와 가깝다고 생각하면 쉽다.
그럼 WAS는 웹 서버의 기능을 다 포함하고 있으니까 여기서 다 처리해버리면 끝 아님? 이라는 생각을 할 수 있다.
만약에 이 모든 로직과 처리 기능 등을 was에서 수행하면 당연히 부하가 몰릴 것이다.
was 한 개만으로 운영을 하면 과부하의 우려가 커지고 이에 따라서 오류 발생 시 오류 화면 노출도 불가능하다 (입벤)
그래서 정적 리소스는 웹 서버가 처리하고, 애플리케이션 로직 같은 동적 처리가 필요하면 was에 요청하는 것이 좋다.
또한 효율적이다.
만약에 더 많은 was 혹은 web server가 필요하면? -> 그 필요한 부분만 증설하면 된다.
그래서 보통 was 앞 단에 web server을 두고 플러그인 형식으로 설정하면 효율적인 분산 처리가 가능하다.
'TIL(Today I Learned)' 카테고리의 다른 글
Day.16 OS(운영체제) (0) | 2022.11.19 |
---|---|
Day.15 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2022.11.17 |
Day.13 알고리즘 학습 (회문 문자열)속 toUpperCase (0) | 2022.11.15 |
Day.12 재귀함수 그리고 졸업 프로젝트 (0) | 2022.11.15 |
Day.10 Binary Search(이진 탐색) - 백준 1920번(수 찾기) (0) | 2022.11.11 |