계속 머리에 넣고 있어야 할 것 같은 말들기억하는 건 적지 않음: 같은 코드도 더 보기좋게, 중복없이, 짧게, 반복이 적게, etc...로 작성하려는 노력1005값 중복\-> 변수 사용연산 중복\-> 1. 연속, 규칙이 있을 경우 - 반복문\-> 2. 연속x 규칙x -
Java 관련 상식, Java의 구조, JVM(Java Virtual Machine)
언어 번역 프로그램 compiler vs interpreter 컴파일: 실행 속도 빠르다 / 변동사항이 있으면 새로 컴파일해야 한다 (번역長 실행短) 인터프리트: 변동사항이 바로 반영 / 실행속도 느리다 (번역短 실행長) Java의 종류 Java SE - Standa
TIP개발 과정에서 폰트로 인해 1, l, I, | 등이 헷갈리지 않도록 추천받은 폰트를 사용한다.윈도우의 '폴더'는 일반적으로 '디렉토리'이며, cmd 명령어 cd = change directory자바 개발도구JDK (Java Development Kit) - 자바
cmd 명령어의 의미dir - 디렉토리 내부 설명 / cls - cmd 화면 클리어텍스트가 영어가 아닌 경우, 저장할 때 인코딩을 ANSI로 변경 (안 그러면 깨짐)소스코드로 무언가를 표현하려면 최소단위 class가 필요, 실행을 위해서는 main method가 필요.
버퍼링(buffering)정보의 송수신을 원활하게 할 수 있도록 수신되는 정보를 일시적으로 저장해서 처리 속도의 차이를 흡수하는 방법(버퍼링이란, 10초가 지났는데도 버퍼에 충분한 데이터가 모이지 않아 지연이 생기는 것)복잡한 코드도 최대한 읽기 쉽게 쓰기, 적극적으로
변수를 사용하는 이유: 중복(값, 연산) 최소화 (-> 수정 편리, 효율 극대화, 오차 최소화)개발 과정 <> 요구사항 수집 - 요구사항 분석 - 설계 </>- 개발 - 배포배포는 요구사항이 충족되었는지 확인하고 수정하는 과정을 포함함. 때문에 비용이 가장
한글 텍스트가 들어가면 ANSI로 저장하기Scanner(클래스)가 아니라 sc(객체)에서 찾아오기nextInt는 클래스가 아니니 첫글자 소문자!!변수 이름은 값과 관련있게 설정하기
오늘의 실수중복은 만악의 씨앗! 중복되는 부분은 최대한 변수로 묶어 없애기! 단 두 번이라도 절대 XXXXXXXXXXXXXX 짝 프로그래밍30초씩 번갈아 프로그래밍을 하기상승 작용이 있다조건식에는 boolean값이 들어감if문 이후의 명령문이 한 문장이라면 {} 생략
default가 없다면 switch문의 실행이 언제나 보장되지 않음(if문의 else와 유사성)제어식에는 정수가 들어갈 수 있다. (long 불가, 1.7부터 String 가능)break로 블록을 중간에 탈출할 수 있다.예제switch -> if문 변환 1switch
반복문은 가급적 적은 반복으로 결과를 구하도록 노력!(반복횟수가 2배라도 시간은 그 배로 걸릴 수 있다. 컴퓨터가 원래 그렇다😂)반복문 해석변하는 값 찾기 (증감연산자 or 대입연산자 찾기)값의 변화를 표로 정리하기반복문 작성풀어서 하나씩 적어보기공통점, 규칙 찾기연
문제풀이1의 자리수와 10의 자리수의 조건을 교차하여 적은 방식 (너무 복잡함💢)십의 자리수, 일의 자리수를 각각 두지 않고, 중간에 값을 바꾸어넣는 것으로 변수를 하나만 사용!!!boolean 변수 flag1, flag2를 사용하거나, int 변수 count를 사용
p. 135 기계어 | ... 어셈블리 -> C -> C++ -> java ... | 자연어 방법론: 절차지향 -> 객체지향 (단순 발전이라 보기는 어려움, 필요에 따라 사용) (함수형은 방법론이라기보다 '표현법') > p. 149 기초 변수 (primitive va
클래스 간의 순서는 없다자바 코드에서 순서는 오직 '메소드 안'에만 존재한다!
toString목적: 객체가 담고있는 내용(멤버변수, 멤버변수로 유도할 수 있는 내용들)을 문자열로 바꾸는 것정해진 형태X 클래스를 만드는 사람이 '문자열'로 내보내고 싶은 내용을 내보내도록 정의하면 됨굉\~\~~장히 많이 쓰임헤더(특히 이름)는 목적·역할이 명확하게
복합연산대입자는 형변환을 자동으로 해줌자바 웹 컴파일 사이트 Hashcode
(package) <- 찾아보고 이해하기private - : 동일 객체 안 (객체 자신만)(package) ~ : 동일 패키지 사용 (특별히 패키지를 주지 않을 경우 default 패키지라 해서, 같은 경로에 있으면 ok) = 패키지 접근제한자protected \
tesla 이야기 - 'OTA(Over-the-air programming'Math.random(): 난수 생성 (프로그램이 실행될 때마다 0 이상 1 미만의 값을 반환함)(int) Math.random() \* n + m시작하는 수 m, 경우의 수 n메서드는 기본적으
객체는 생성-사용-소멸의 과정을 거친다.접근할 수 없는 객체 = 가비지 = 소거할 대상 <- 가비지 컬렉터따로 요청 가능하지만 여전히 어느 타이밍에 가비지가 소멸되는지는 알 수 없다.대입 연산자는 둘이 같아진다는 말이 아니라, 둘의 값(주소값)을 같게 한다는 말이
import 같은 것만 class 밖에 존재 가능.이런 걸 설정이라고 함.자바는 객체지향언어 - 다루는 대상이 객체이기 때문에,객체를 구성하는 두 가지 정보(상태/멤버변수, 행위/메서드)를 제대로 구현하는 건 매우 중요한 부분지금 배우는 부분 = 기초 = 매우 중요기
초보자가 객체생성하는 법'눈에 보이는 특징 전부 작성 후, 정 필요 없으면 삭제'클래스 다이어그램에서 static은 밑줄그어 표시메소드를 만드는 경우 3가지1\. 중복일 때2\. 너무 길고 복잡할 때3\. 의미 단위로 행위를 분리할 때선배 조언)형상관리 연습 : gi
모델링 할 때 '특징 정리하기' 단계 빼먹지 말기만들기 전, 만들 대상의 정보를 정리하는 작업은 중요하다 특히 우리같은 초보자에게'계층구조, 상하개념'이란 왜 있을까? (나: 계층구조의 목적보다는 계층구조의 특징?)정의'기존에 존재하는 클래스로부터 필드와 메서드를 이어
: 자식 클래스가 부모 클래스의 메서드를 필요에 맞추어 재정의하는 것메서드 header(이름, 패러미터, return)를 변경할 수 없다. 접근제한자는 변경 가능하지만, 더 넓은 범위로만 가능. (하위클래스가 더 넓어야 함.)(private -> 생략 -> protec
다형성 : 많은poly + 모양morph하나의 객체가 많은多 형태type로 나타날 수 있는 것 = 다형성이 성립한다.O ← A ← B ... 'is-a 관계'가 성립할 때,(= O가 A를 포괄하는 상위개념, A가 B를 포괄하는 상위개념)new B()로 생성된 객체는 B
댄 페냐의 성공을 위한 마음가짐추상메서드를 포함할 수 있는 클래스class 앞에 abstract를 붙여 표현상속에서 추상적인 개념을 나타내기 위한 용도로 사용leaf node가 될 수 없다 (언제나 자식 클래스를 상정하고 만들어진다.)추상메서드: body가 없는 메서드
'~1.7 이전의 정의' 기준(실무에선 기업이 대부분 1.5~1.7 사이 사용)상수 (final + static) 와 추상 메서드만 소유 가능(static은 실제로 속하는 것이 아니므로, 사실은 추상 메서드만 소유할 수 있는 것) 접근제한자는 public만 사용 가능(
찾아볼 것1\. 인터페이스 다중상속의 의미api문서에서 specified ~ (특정한 객체)가 나오면 무조건 parameter를 가리킴.toString처럼 오버라이딩하여 사용 (from Object)객체를 구성하는 정보가 유사할 때 = 멤버변수가 같을 때, 두 객체가
배열 자주 나오는 에러 ArrayIndexOutOfBoundsException NegativeArraySizeException
사실 2차원 배열이란 건 없다!2차원 배열 (x)배열의 원소로 배열이 들어간 것 (o)즉 2차원 배열 -> 배열 안에 배열3차원 배열 -> 배열 안에 배열 안에 배열arr\[n+1]\[m+1] : 배열 arr의 n번째 원소(=배열)에서 m번째 원소 꺼내오기참고만약 반복
'equals'로 원하는 객체 찾을 때 사용!getter를 따로 사용해서 원하는 객체 찾기 코드를 만드는 건 불편하고 재사용도 어려움그러므로 '식별자 객체'를 만들고, 이걸 이용해서 equals 메서드로 찾는다.ex) 시험 성적, 키, 몸무게 <- 존재하지 않을
위키피디아 정렬 알고리즘정렬 알고리즘복잡도오른쪽으로 갈수록 오래 걸림 (최악)
예외 (Exception): 실행 중 발생하는 에러 -> 최악의 경우 프로그램 강제종료예외처리 : 문제상황을 해결하는 것이 x, 문제발생시 대처법을 알려준다.ex) 문제상황 = 나가야 하는데 문이 안 열림\-> 어떻게든 나가는 법을 알려준다. (x)\-> 차분히 앉아
배열이 아닌 복수데이터의 필요성(배열의 한계 : 길이가 고정되어 있음. 한 번 정해진 길이는 변경 불가.)클래스x 개념명길이 가변적(기본적으로는) 기본데이터형 지원하지 않음 = 객체만 가능interface인 Collection과 Map이 여기에 속함기본 데이터타입을 클
remove(Object o), 우리가 만든 클래스로 Collection 하위에 존재하는 메서드들을 사용할 때, 반드시 equals를 오버라이딩해주어야 한다. (List 안에서 주어진 객체를 찾아 제거하고, 변경하고, index값을 찾아오는 행위를 할 때 )
next 메서드 의미? 하나씩 꺼내기?Integer\[]로 밀고 나간 것Scanenr scan 멤버변수로 두기 - 어차피 Scanner 클래스의 메서드는 객체 생성해서 만들어야 하니까, 계속 쓸 거라면 멤버변수 만들어두고 (아니면 아예 생성까지 해서) 계속 쓸 수 있음
출처AND연산 (&&) : (조건A) && (조건B)에서 조건 A가 false일 경우 B는 확인하지 않는다. (B를 확인하지 않아도 자동 false 처리한다.)문자(character) + 열(순서O 복수데이터)String implements interface Seria
구분자 기준으로 문자열을 나누어 토큰으로 저장하는 클래스기본 구분자(delimiter) : 공백, 탭, 엔터 등 StringTokenizer(String line, String delim) - 생성자countTokens()nextToken()hasMoreTokens()
: UI 상에서 사용자가 하는 모든 행위. 예외 객체와 비슷.event 이벤트발생하는 이벤트의 종류 (ex) ActionEvent)event-source 이벤트 소스이벤트를 발생시키는 컴포넌트 (ex) JButton)event-listener 이벤트 감시자 (-> in
LookAndFeel 이란mnemonic 이란메뉴, 메뉴바, 메뉴아이템으로 구성JFrame의 ContentPane의 최상단에 위치 (배치 변경 불가)KeyStroke : 키조합 의미 클래스니모닉 mnemonic : 연상기호, 버튼과 일대일 대응하는 기호(char)
모든 곳에서 입출력 기능 사용(대표적으로 우리가 사용해왔던 println())java.io사용 빈도 매우 높음성능에 직결 - 속도, 다양성 (입출력 처리에 따라 프로그램의 성능이 많이 좌우됨)I/O 원리 이해File 컨트롤 - 더이상 휘발성의 정보만을 사용하지 않음\-
java.io주어진 data를 읽거나 data에 쓰는 기능을 가진 객체 (프로그램과 data 사이를 연결하는 통로?)💥💥 주의!!! java 1.8부터 추가된 함수형의 stream과는 다름!!!!!! 💥💥방향 (I/O) - Stream은 단일 방향을 가진다. (
: 다른 Stream을 받아 변환하는 Stream.생성자로 다른 Stream을 받아오는 것이 특징! (입력장치, 출력장치에 바로 연결되지 않는다!)데코레이터 패턴Filter 개념 그림 by 강사님기초 자료형으로 읽고 쓰는 기능을 가진 Stream 클래스 (filter)
Web상을 돌아다니면서 정보를 수집하는 행위= 웹페이지를 읽고 내가 원하는 정보를 찾아오는 것
컴퓨터에서 프로세스란 '현재 돌아가고 있는 프로그램'을 말한다.참고 - 프로세스와 쓰레드의 개념과 구현초기 컴퓨터는 한 번에 하나의 프로세스만 진행 가능. 이 한계를 극복하기 위해 나온 것이 '시분할 방식'. 이를 통해 우리는 멀티태스킹을 느낄 수 있다.참고 - CPU
네트워크에서 쓰레드 많이 나옴앞에서 배운거 싹 다 나옴네트워크란? 참고네트워크란 컴퓨터간 연결, 통신하는 행위네트워크망 = 컴퓨터간 연결하는 망디바이스 식별자네트워크망에서 원하는 디바이스(PC 등)을 찾게 해줌ip의 확장기존 ipv4 사용 -> ipv6로 변경프로세스
GUI(AWT, Swing)는 기본적으로 thread-safe하지 않음 (동기화 지원하지 않음)권고사항 - 멀티스레드 상태로 GUI에 접근하지 말 것GUI에 발생하는 이벤트는 EventDispatchThread가 처리이벤트가 발생하면 발생한 요구사항이 EventQueu
예시 코드 - SendData프로토콜은 통신규약 = 통신하는 방식을 정한 약속 = 예시코드의 SendData 클래스무슨 기능을 수행할지(opcode = URL), 무슨 정보가 필요한지(op1, op2 = query) 정의!
Entity : 자바 객체같은 것, 한 줄 = 한 개체Relation : 관계형 테이블릴레이션, 테이블 쉽게 통용되지만 차이 있음SELECT \* FROM Products; - SQL의 쿼리(질의문)우리는 테이블 못만듦우리는 만들어진 DB에서 SQL query(질의문)
웹 서비스는 왜 이만큼 보편화되었는가?: 웹 서비스는 서버를 두는 중앙집중형태로 관리도 편하고, 네트워크 연결이 가능하고 웹브라우저가 설치된 클라이언트라면 추가 설치 없이 간편하게 어디서든 사용 가능(네트워크 연결이 필요하다는 단점. 하지만 최근에는 거의 의미없음.)왜
참고 사이트 W3Schools기본 정보는 Tutorials, 추가로 태그 정보를 찾을 때는 ReferencesHyper-Text = 비선형문서 (정해진 순서가 없음)(책 = 선형문서 = 읽는 순서가 있음)Markup Language = 태그로 이뤄진 문서문법에 관대하다
url(Uniform Resource Locator)127.0.0.x : 내(클라이언트의) 컴퓨터의 iplocalhost:8080 : 내(클라이언트의) 컴퓨터의 주소:포트우리가 url을 요청하면 서버가 jsp를 실행해서 돌려준다.jsp 안에는 서버사이드 언어(동적인 데
JSP 처리 과정출력 버퍼웹 어플리케이션 폴더 구조war 파일자바 웹 표준은 서블릿 (서블릿의 일부 기능을 편하게 만든 것이 jsp)jsp 실행 중 예외가 발생할 경우 -> 프로그램은 서블릿 코드에서 에러난 부분을 알려준다!jsp 코드를 변경해도 바로 적용되지 않을 수
PAGE 영역 - pageContext - JSP 페이지 내부REQUEST 영역 - request - 요청 ~ 응답가장 많이 사용SESSION 영역 - session - 클라이언트(브라우저)당 하나씩 할당세션은 브라우저로 접속 ~ 브라우저 종료까지 (ex 로그인)APP
jsp 코드에서 CheckedException인 IOException이 발생할 가능성이 있을 때에도 대비하지 않는 이유 (try ~ catch ... 사용x)서블릿 자바 파일 확인하면 우리가 작성한 스크립트가 service 메서드 안에 들어가있는 것을 확인할 수 있음I
JSP 페이지 만들기 - 참여자1\. 개발자2\. 디자이너 (프엔 개발자, 디자이너, 퍼블리셔 등)디자이너들은 비전공자, 실제 html의 원래를 모름 협업시 디자이너가 jsp를 이해하게 만들기 어려움하지만 협업을 위해서는 함께 협동하여 코드를 만들어야 함결과 : jsp
한계가 있음 (브라우저가 쿠키를 저장하지 않을 수 있음 - 쿠키 비허용 옵션)보조적 수단으로만 활용서버는 쿠키를 이용해서 브라우저에 정보 전송 가능브라우저(클라이언트)는 쿠키 저장소에 전달받은 쿠키를 저장브라우저가 서버에 요청을 날릴 때 가지고 있는 쿠키를 같이 전송서
세션 매우 중요!!!!!클라이언트 상태를 서버에 저장http 연결은 connectless, stateless(http 프로토콜 상에서는 연결이 유지되지 않고, 상태 정보도 남지 않음)웹 프로그램의 가장 큰 목적 중 하나가 '상태 유지'세션 혹은 세션+쿠키로 달성세션은
html-js `` js location : 브라우저에서 지원하는 기본객체 location.href="주소" : 해당 주소로 이동 form 객체 가져오기 1.document.class명 2.document.getElementById(id명) 3.document.for
서블릿 생성 마법사와 web.xml 결과url-pattern 에 해당하는 파일에 접근하면servlet-name 을 통해 서블릿 파일의 servlet-class를 찾아 사용한다.do : 자바 파일 url에 자주 쓰이는 확장자. 파일명을 한다는 의미. ?\*\*- jsp는
\[JavaScript] DOM이란 무엇인가?문서 객체 모델(DOM) - mdn문서 객체 모델(DOM) - w3schoolsHTMLCollection과 NodeList, 너흰 누구니?
Class 클래스를 이용해 객체를 생성new 외에 객체를 생성할 수 있는 또 하나의 방법 (클래스의 풀 패키지 명 필요)newInstance() : return Object -> 사용시 형변환 필요생성자 선택 가능<jsp:useBean>으로 객체를 생성할 수 있는
참고
<면접 대비 지식>용어키무결성DB - Database와 DBMS의 차이표준 DB언어 = SQL하지만 프로그램간(MySQL, 오라클 등) 경쟁 과정에서 표준 언어를 그대로 쓰는 곳은 없어짐데이터를 영속적으로 저장하는 방법 = 파일논리적 구조로 데이터베이스를 여러 개
DB 표준 언어DB는 명령프롬프트창으로 제어할 수 있지만 필드이름, 타입(길이정보), 널값허용여부, 키설정, 기본값, extraint : 정수char(길이) : 문자열 (고정형) - 데이터 변경시 유리varchar(길이) : 문자열 (가변형) - 공간활용도 우수deci
드라이버 로드연결질의자원 해제executeUpdate : INSERT, UPDATE, DELETE => int 리턴executeQuery : SELECT => ResultSet 리턴 (셀렉트문 결과 담는 객체)ResultSetSELECT문의 결과를 담고있는 객체참고단위
DISTINCT가 필요한 순간 잘 캐치해서 써주기DISTINCT의 의미 : 조인 과정에서 양측 집합의 건수를 줄여 조인의 부하를 줄일 수 있다.참고CHAR_LENGTH() : 글자의 길이를 반환하는 함수SELECT 결과를 다시 JOIN하는 것도 가능하다!
예제 1 예제 2
참고참고2jsp에서 하는 일은 대부분 값을 빼오는 것 = getterel은 이를 대체하는 역할scope와 속성 이름을 통해 속성값을 가져올 수 있음scope를 표시하지 않으면 pageContext -> request -> session -> application 순서로
Database Connection Pool데이터 요청시마다 불필요하게 통신 연결 비용이 높아지는 것을 방지하기 위해,미리 Connection 객체를 만들어 Pool에 보관하는 기술참고 String PoolDAO 클래스의 멤버변수로 두고 이후 Connection 객체가
스프링 개발 방식은 레거시 or 스프링 부트4.1부터는 레거시 프로젝트 지원x, 스프링 부트 3.0부터 자바 고버전만 지원(우리는 원리 이해 위해 레거시부터 배움)스프링의 장점은 MVC 구조보다 DI다.스프링은 기본 서블릿을 지원 (우리가 직접 만들지 않고 스프링에서
“”과 null의 크기https://woonys.tistory.com/m/entry/자바에서-null과-빈-문자열-데이터의-크기는-얼마나-될까
class VendingMachine { // Variable balance private int balance = 0; // Variable item prices private int coffee; private int water; private int cookies