분류 전체보기 160

[프로그래머스] 후보키

[문제]https://campus.programmers.co.kr/tryouts/140904/challenges  [문제 설명] 후보키프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다.그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중에 후보키(Candidate Key)에 대한 고민이 필요하게 되었다.후보키에 대한 내용이 잘 기억나지 않던 제이지는, 정확한 내용을 파악하기 위해 데이터베이스 관련 서적을 확인하여 아래와 같은 내용을 확인하였다.관계 데이터베이스에서 릴레이션(Relation)의 튜플(Tuple)을 유일하게 식별할 수 있는 속성(Attribute) 또는 속성의 집..

[Web] 역대 클라이언트-서버 간 통신 방식 총 정리

REST API 방식에 대해 공부를 하려고 하다보니..갑자기 그동안 클라이언트와 서버가 통신하는 방식의 역사가 궁금해졌다.. 지금은 너무나 당연한 방식인데, 과연 예전에는 어땠을까???찾아보니 REST API 형태가 도입되기 전의 통신 방식은 지금과는 좀 달랐다. 그 중에서 특히 많이 사용된 몇 가지를 정리해보자.    1. RPC (Remote Procedure Call)RPC는 클라이언트가 서버에게 "이 함수 좀 대신 실행해줘!"라고 요청하는 방식.클라이언트는 서버에 있는 메서드를 마치 로컬 메서드처럼 호출할 수 있는 것.예를 들면, SOAP이라는 프로토콜이 있다. SOAP는 XML을 기반으로 동작하며, 원격 프로시저 호출을 가능하게 해준다.서버에 요청을 보내고, 서버는 응답을 XML 형식으로 돌려주..

Web 2024.08.11

nodejs로 라우팅 서버 실습해보기!

-라우팅 : 서로 다른 일을 하게 하기 ⇒ 요청에 따른 다른 응답 결과를 보내는 것-요청에 대한 정보-헤더 구성요소요청URL요청 메소드상태코드(응답)지금은 아무것도 안 뜬다..노드의 http 모듈로 서버를 간단히 만들어서 다시 조회해보자포스트맨으로 다시 요청해보기-옵션 추가결과-응답에 대한 정보 추가-응답 형식(MIME)이란? “나 이렇게 응답할거야~”text/plaintext/htmlapplication/json : 자바스크립트 객체 json 형태로 응답등등등…다음을 참고하자.MIME types (IANA media types) - HTTP | MDN MIME types (IANA media types) - HTTP | MDNA media type (also known as a Multipurpose ..

[JAVA] 자바의 컴포넌트 - 자바 빈(Bean) 조건과 필요성

재사용성을 높이기 위한 방법으로 인스턴스를 꼽았었다.이것을 조금 더 큰 덩어리, 즉 컴포넌트로도 활용이 가능하다. (자바의 클래스를 컴포넌트화)자바에서는 재사용을 위한 컴포넌트를 자바 빈(Bean)이라고 부른다.    1. 자바 빈(Bean) 조건💡 [ JavaBean 조건 ]public classpublic 생성자() : 매개변수 없어야 함property용 멤버변수(멤버필드)는 public이면 안됨property용 public setXXX/getXXX 메소드가 필요   이 형태를 취해야 클래스가 자바 빈의 형태를 띄게 된다.   2. 자바 빈(Bean) 필요성 그냥 인스턴스 만들어 쓰는 것으론 부족할까?다 이유가 있다. 그 중 하나가 바로, ■ 필터링 기능 (in 제공자 관점) -Case1 : 나쁜 ..

[JAVA] JIT 컴파일러가 필요한 이유, 자바 인터프리터와 차이점

바이트코드는 JVM의 실행 엔진에 의해 실행된다.공부를 하다보니, 인터프리터와 JIT컴파일러는 둘 다 JRE안에 속해있고바이트 코드를 기계어로 해석하는 점이 비슷해보였다.그럼 둘의 차이가 무엇일까? -> 자바 인터프리터는 바이트 코드를 한 줄씩 읽고 실행하는 방식으로 동작한다.이는 프로그램의 실행이 비교적 느릴 수 있지만, 실행 초기 단계에서는 빠른 시작을 제공한다.JIT컴파일러가 동작하기 전까지 실제로 인터프리터를 초기에 사용한다. ( 느리지만 빠른 시작) -> JIT (Just-In-Time) 컴파일러는 바이트 코드를 기계어로 동적으로 변환하여 실행 속도를 크게 향상시킨다.프로그램 실행 중 자주 사용되는 코드 부분(핫스팟)을 미리 컴파일하여 실행 속도를 최적화한다.JIT 컴파일러는 인터프리터가 처음에..

카테고리 없음 2024.07.29

[JAVA] 절차지향 언어와 가장 큰 차이점

대표적인 절차지향 언어인 C언어.자바 프로그램과 C언어의 가장 큰 차이점은 바로, 이다.환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져어떤 OS 환경에서도 실행될 수 있으며 플랫폼에 독립적일 수 있다.  => 이것은 C언어와 자바의 컴파일 방식의 차이가 있어 가능하다. C언어의 경우 : A.c —(compile)—> A.obj(binary체계의 기계어: 리눅스 기반으로 환경에 종속적이다. 윈도우 실행X)반면 자바 컴파일은 run하는 환경 기계어 다 다르니, 어느 환경에서든 돌아갈 수 있는 .class를 만든다.기계에 독립적인 중간 코드를 만드는 과정인 것이다.JAVA의 경우 : A.java —(compile)—> A.class(byte code체계의..

[JAVA] 자바 컴파일 특징을 JDK 구성 요소를 통해 알아보자

0. 서론  [JAVA] 절차지향 언어와 가장 큰 차이점대표적인 절차지향 언어인 C언어.자바 프로그램과 C언어의 가장 큰 차이점은 바로, 이다.환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져어떤 OS 환경에서도 실행될 수hansjour.tistory.com      1. 자바 프로그램의 구성요소와 특징JDK의 구성을 보자. JDK > JRE > JVM 의 포함관계로 구성되어있다.  JDK (Java Development Kit)자바 소스 코드를 컴파일하여 실행 가능한 프로그램을 생성하는 개발 도구 세트-포함 항목컴파일러 (javac), 디버거, 개발 도구 (java, javac, javadoc, jar)JDK는 자바 개발자가 소스 코드를 작성하고, ..

[JAVA/프로그래머스] 연속된 부분 수열의 합

[문제]https://campus.programmers.co.kr/tryouts/138985/challenges  [문제 설명]비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다.기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다.부분 수열의 합은 k입니다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다.수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution ..

[JAVA/프로그래머스] 완주하지 못한 선수

[문제]https://campus.programmers.co.kr/app/courses/24215/curriculum/lessons/322800#part-71108문제 설명수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.제한사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로..

[JAVA/프로그래머스] 주식가격

[문제]https://campus.programmers.co.kr/tryouts/139163/challenges문제 설명초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.제한사항prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.prices의 길이는 2 이상 100,000 이하입니다.입출력 예pricesreturn[1, 2, 3, 2, 3][4, 3, 1, 1, 0]입출력 예 설명1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다.2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다.3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것..