토요스터디 / 10주차
< JAVA >
// "이름: 홍길동, 나이: 미상, 취미: 스벅커피 마시기"
// 출력결과: [이름: 홍길동, 나이: 미상, 취미: 스벅커피 마시기]
String str = "이름: 홍길동, 나이: 미상, 취미: 스벅커피 마시기";
String[] arr = str.split(",");
System.out.println(str);
// 2.
// "010-1234-5678"
// 출력결과: [010, 1234, 5678]
String str2 = "010-1234-5678";
String[] arr2 = str2.split("-");
for(String arr : arr2) {
System.out.print(arr);
if (!arr.equals(arr2[arr2.length - 1])) { // 마지막 요소가 아니면 반점을 출력
//equals함수는 괄호안에 있는것과 비교하는 함수다
System.out.print(",");
}
}
// 3.
// "김철수 김영희 김수진 김지수 박지우 박재우 박진우"
// 출력결과: [김철수, 김영희, 김수진, 김지수, 박지우, 박재우, 박진우]
String member = "김철수 김영희 김수진 김지수 박지우 박재우 박진우";
String[] name = member.split(" ");
for(String num : name) {
System.out.print("["+num+"]");
if (!num.equals(name[name.length - 1])) { // 마지막 요소가 아니면 반점을 출력
System.out.print(",");
}
}
// <심화문제>
// 아래 callme 배열에서 전화번호를 어떤 기호나 공백 없이 11자리로 출력해주세요.
// * String.join():문자열 합치기 과 String.replace():문자열대체 에 대해 알아보세요.
// 출력결과: 01012345678
String[] callme = new String[] {"연락 주세요", "010-1234-5678"};
for (int i = 0; i < callme.length; i++) {
String str = callme[i];
str = str.replace("-", "");
System.out.println(str);
}
// 뉴렉회사는 개인정보처리법이 바뀌어 회원의 주민번호를 수정하여 저장해야한다
// 000000-0000000 형태의 문자열을 -을 제외한 문자열을 리턴하는 메서드를 작성하세요
// 결과: {"1234561234567", "0000001111111"}
// String[] RRNs = {"123456-1234567", "000000-1111111"};
// for(String rrn : RRNs) {
// rrn = rrn.replace("-", "");
// System.out.print("{"+rrn+",");
// }
// for (int i = 0; i < RRNs.length; i++) {
// // 하이픈(-)을 제거하여 숫자만 추출
// String digits = RRNs1[i].replaceAll("-", "");
// // 추출한 숫자를 새로운 형식으로 변환
// String converted = "\""+digits.substring(0, 6) + digits.substring(6)+"\"";
// convertedRRNs[i] = converted;
// }
// String str = "Hello, world! This is Java programming.";
//
// // "world!" 다음에 오는 문자열을 추출하기 위해 "world!"의 인덱스를 찾음
// int index = str.indexOf("world!");
//
// // "world!" 다음에 오는 문자열을 추출함
// String result = str.substring(index + "world!".length());
//
// System.out.println(result); // 출력 결과: This is Java programming.
// 다음 url 문자열에서 access_token의 값을 추출하는 메서드를 작성하세요
// 결과 : "a123bd24"
// String requestUrl = "https://quiz4.io?access_token=a123bd24&expires=1000";
// int idx = requestUrl.indexOf("access_token");
// int idx2 = requestUrl.indexOf("&");
// String result = requestUrl.substring(idx+"access_token".length(),idx2+"&".length()-1);
// System.out.println(result);
< QUERY >
(1)
NAME 첫글자가 '김'으로 시작하는 애들만 찾아,그들의 ID와 AGE를 출력하시오)
SELECT ID AS USER_ID,AGE AS USER_AGE FROM MEMBER WHERE NAME LIKE '김%';
(2)
'홍길동'보다 더 많은 AGE인 사람들의 NAME과 AGE를 출력하시오)
SELECT NAME,AGE FROM MEMBER WHERE AGE > (SELECT AGE FROM MEMBER WHERE NAME = '홍길동');
*다른방법(컬럼에 별칭 붙인 방법)*
SELECT NAME "이름_1",AGE 나이 FROM MEMBER WHERE AGE > (SELECT AGE FROM MEMBER WHERE NAME = '홍길동');
// *먼저 조회하고 싶은 구문은 ( ) 서브쿼리로 감싼다
// 1. NAME이 '홍길동'인 것의(WHERE NAME) '나이'를 멤버테이블에서 가져온다(SELECT AGE FROM MEMBER)
// 2. '이름'과'나이'를 가져온다.(SELECT NAME,AGE) 멤버테이블의 AGE컬럼에서 (FROM MEMBER WHERE AGE)
< HTTP >
🏷️ 9주차
- Port란? (Port번호의 범위도 슥 봐보기 2^16)
: 외부의 다른 장비와 접속하기 위한 플러그 같은것이고
포트 번호의 범위는 0부터 1023까지가 제일 잘 알려져 있고, UNIX/LINUX에서 루트 권한으로만 포트를 열수 있고 예약영역 이라고 한다
포트 번호는 TCP/IP 프로토콜에서 사용되며, 0부터 65535까지의 범위를 가집니다.
- HTTP, HTTPS 프로토콜의 포트 번호는 몇인가요?
: HTTP는 90 HTTPS는 443
- HTTP의 특징 때문에 여러가지 도구가 있는데요.
그 중 HTTP 쿠키란 무엇일까요?
: 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각
- 서버는 클라이언트에게 쿠키를 어떻게 만들어주나요?
: 서버에서 로그인 성공 시 쿠키를 담아 브라우저에 전달하면
브라우저가 해당 쿠키를 저장해두고 해당 사이트에 접속할때마다 계속해서 해당 쿠키를 클라이언트에게 제공함
- 쿠키의 구조를 알아보고 [브라우저 개발자도구] -> [애플리케이션] -> [쿠키]를 웹 사이트마다 어떻게 있는지 가볍게 구경해보세요
[심화]
조금 더 응용 단계를 알고싶다면
- 쿠키의 HttpOnly와 secure, path, domain 옵션
: 쿠키 HTTPONLY / 브라우저에서 쿠키에 접근할 수 없도록 제한하기 위한 옵션
자바스크립트를 통한 쿠키 조작도 불가능하다
(웹 애플리케이션의 보안성을 높이기 위한 중요한 보안 기능 중 하나)
Secure: 이 옵션을 설정하면, 쿠키를 HTTPS 프로토콜로만 전송할 수 있습니다.
이것은 중요한 정보가 담긴 쿠키가 도난당하는 것을 방지합니다.
Path: 이 옵션은 쿠키가 적용되는 URL 경로를 지정합니다.
경로를 지정하면 해당 경로를 포함한 하위 경로에서만 쿠키를 전송할 수 있습니다.
Domain: 이 옵션은 쿠키가 적용되는 도메인을 지정합니다.
도메인을 지정하면 해당 도메인을 포함한 하위 도메인에서도 쿠키를 전송할 수 있습니다.
- 쿠키의 도메인당 최대 개수가 있다?
: 브라우저에서 쿠키 최대 개수는 20개 이하로 제한
이렇게 제한하는 이유는 도메인당 너무 많은 쿠키가 저장되면 웹 브라우저의 성능에 영향을 미치는것을 방지하기 위해서이다
< 프로그래머스 코테 >
//정수로 이루어진 문자열끼리 비교해서 더 큰값 도출하기
class Solution {
public int solution(int a, int b) {
String result1 = String.valueOf(a)+String.valueOf(b);
String result2 = String.valueOf(b)+String.valueOf(a);
int num1 = Integer.parseInt(result1);
int num2 = Integer.parseInt(result2);
int max = Math.max(num1, num2);
if(num1==num2) {
return num1;
}else {
return max;
}
}
}