문제설명

양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.



예시

입출력예 #1
예제 1번의 n은 7로 홀수입니다. 7 이하의 모든 양의 홀수는 1, 3, 5, 7이고 이들의 합인 1 + 3 + 5 + 7 = 16을 return 합니다.
입출력 예 #2

예제 2번의 n은 10으로 짝수입니다. 10 이하의 모든 양의 짝수는 2, 4, 6, 8, 10이고 이들의 제곱의 합인 22 + 42 + 62 + 82 + 102 = 4 + 16 + 36 + 64 + 100 = 220을 return 합니다.

 

 

문제 풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i=1;i<=n;i++){
            if(n%2!=0&&i%2!=0){
                answer += i;
            }else if(n%2==0&&i%2==0){
                answer += i*i;
            }
        }        
        
        return answer;
    }
}

a.jsp에 import 되어있는 b.jsp를 수정하여도 a.jsp를 불러와도 반영되지 않아 해당 문제로 시간이 좀 걸렸다.

문제로는 동적 바인딩으로 import 되어 있어서였다.

해당 문제로 정적 바인딩과 동적 바인딩에 대해 알아 보았다.

 

우선 바인딩이란 무엇인가 ?

 

 

정적 바인딩

사용할 시점 : 컴파일 시점에 클래스 로드

실행 이전에 값이 확정되면 정적 바인딩이라고 한다.

컴파일 타임에 호출될 함수가 결정 되는 것으로, 함수는 기본적으로 정적 바인딩 된다

 

<%@ page import="sys_top.jsp" %>

정적으로 해당 a.jsp를 수정하지 않고 sys_top.jsp만 수정할 경우 수정한 내용이 반영되지 않는다

반영되게 하려면 a.jsp도 다시 컴파일을 해야 반영된다.

 

동적 바인딩

사용할 시점 : 런타임 시점에 클래스 로드

실행 이 후에 값이 확정되면 동적 바인딩이라고 한다

런타임에 호츨될 함수가 결정되는 것

 

<jsp:include file page=" sys_top .jsp" flush="true">

flush="true"일 겨우 강제로 컴파일하여 sys_top.jsp만 수정하여도 a.jsp가 바로 컴파일 되면서 반영됨

유연하게 변경된다는 장점이 있지만,

단점으로는 sys_top.jsp만 따로 컴파일이 돌게 되는 것으로 import를 해당 파일에 다 따로 선언해줘야한다.

어플라이언스랑 어플리케이션이랑 부르는 것이 비슷하여 비슷한줄 알았는데 많이 차이가 있음을 알고 정리한다.

 

> appliance vs application
* • appliance
하드웨어와 소프트웨어가 통합된 전용 장비
플러그 앤 플레이 방식 (장비 연결만 하면 추가적인 설정, 드라이버 설치 없이 즉시 작동)
특정 기능 (보안, 네트워크 관리)를 효율적으로 안정적으로 수행하기 위해 설계된 전용 하드웨워
예시 - 원격 접속 제공 장비, 대용량 데이터 저장을 위한 장비 EMC 
* • application
소프트웨어 프로그램
운영체제 위에서 동작
예시 - instagram, Spotify

단방향 방화벽 오픈을 요청할 경우 DB쪽 ip, Port는 필요하지만 클라이언트쪽 Port는 필요없고 ip만 필요한 사실은 알았지만 왜 필요가 없는지에 대해 알지 못해 이번 기회에 알아보았다.


 • 단방향 방화벽 요청하는 db쪽 port 불필요 이유
클라이언트 서버 (애플리케이션 서버)가 요청할 경우 사용하는 port가 요청할때마다 달라져서 방화벽 오픈할때 port 정보가 필요 없으며,
데이터베이스 (DB)서버는 고정된 포트를 사용하므로 방화벽 오픈 할때 port 정보 필요

 • TCP 통신할 경우 소스 포트, 목적지 포트 2개 사용

클라이언트 서버에서 요청할때 동적으로 포트를 할당 받는데
소스 포트는 시스템이 자동으로 빈 포트중 하나를 선택하여, 클라이언트가 요청을 보낼 때마다 달라짐
방화벽에서는 클라이언트의 소스 포트를 미리 알 수 없음

 • 동적으로 port를 할당 받는 이유 ?
   - 포트 충동 방지
     하나의 시스템에서 여러 어플리케이션이 네트워크 연결을 시도할 경우, 각각의 애플리케이션이
     같은 포트를 고정적으로 사용한다면, 포트가 이미 사용중일 때 새로운 연결 못함
    - 동시 연결 지원 위해
      포트 충돌을 피하고 여러 개의 연결을 동시에 하기 위해
    - TCP/IP 프로토콜의 설계 발식  
      설계에 맞춰 효율적인 네트워크 통신 가능


 

'인프라' 카테고리의 다른 글

[용어] appliance vs application 차이  (1) 2024.11.14

+ Recent posts