[JAVA] JAVA 8 버전(1.8.0)에 대하여 # JAVA 버전 관련 간단 상식 Q. JAVA 8 과 JAVA 1.8.0은 서로 다른 버전을 뜻하는 명칭이다? => 정답은 X 이다. 같은 말이며, 필자는 JAVA 8이라고 명칭을 사용하는 것을 추천하고 실제 많은 레퍼런스에서도 JAVA 8로 표기하고 있다. Q. LTS(Long Term Support) 버전이란? => Oracle에서 계속 유지보수 및 관리 해주는 버전으로, JAVA 8/11/17버전이 LTS버전에 해당한다. (LTS의 반댓말 = non-LTS) # JAVA 8의 주요 기능 소개 1. Lambda(람다) Lambda는 함수를 하나의 표현식으로 나타낸것을 의미한다. 또다른 이름으로 "익명 함수"라고도 부른다. List numList = Arrays.asList(0, 1, 2); // 1.. 2023. 6. 16. [JAVA] JVM의 깊은 개념 및 구조 # JVM이란? Java Virtual Machine의 줄임말로 '자바(Java) 언어 실행용 가상 머신'이다. 기본적으로 컴퓨터의 CPU는 Java 소스코드로 작성된 파일(= *.java)을 인식하지 못한다. CPU가 인식하려면 기계어로 컴파일(=번역?) 해줘야 하는데 Java 언어의 특징 중 하나인 'Java는 OS에 종속적이지 않다'는 점을 실현시켜 주는 역할이 바로 JVM이다. 즉, Java소스 파일( *.java ) 작성 -> JVM에서 Java파일 컴파일( *.java -> *.class) -> 어느 OS든 JVM 위에서 컴파일된 *.clss파일 실행 가능 *Java compiler => *.java파일을 *.class라는 Java bytecode로 변환해 준다는 뜻이다. => JDK를 설치하.. 2023. 6. 9. Code-Refactoring(코드-리펙토링) # 리펙토링이란? '결과의 변경 및 변화 없이 코드의 구조를 재정비'를 뜻한다. 즉, 현재코드의 동작은 유지하되 가독성을 향상하고, 확장성을 향상하게 소스 코드를 재수정하는 것이다.(버그 제거 또는 새 기능 추가와는 별개이다.) # 리펙토링 필요 시기 기능 추가 전 버그 수정 전 코드 리뷰시 3번의 중복 행위가 발생하는 로직 존재 시(삼진 규칙) CleanCode vs Code-Reafctoring 클린 코드 - 프로젝트 진행 시 코딩하는 과정에 있어 규칙을 잘 지킨 코드 작성을 의미 - 설계부터 잘 이루어져 있는 것이 중요 리펙토링 - 더 넓은 의미로 클린 코드를 포함한 유지보수를 위한 전체적인 프로젝트 구성 및 코드 개선을 의미 - 결과물이 나온 이후 수정 및 추가 작업 진행시 개선해 나가는 것이 옳.. 2023. 4. 11. [Spring Boot] MyBatis 문법- #{} , ${} 사용법 >>학습 목표 mapper 쿼리문 작성시 파라미터 값을 받아오려면 ${}와 #{} 문법을 사용해야 한다. 이 둘은 사용 용도부터 주의점까지 비슷한 것 같지만 엄염히 다르다고 할 수 있다. #{} 사용법 SELECT * FROM tbl_user1 WHERE id = #{id} MyBatis에서 위와 같은 #{}이 사용된 쿼리문이 실행되면 아래와 같이 쿼리문에 ?가 생기며 파싱된다. SELECT * FROM tbl_user WHERE id = ? #{}의 경우 위의 ? 위치에 파라미터가 바인딩 되어 쿼리문이 실행된다. 변수에 작은 따옴표(' ')가 자동으로 붙어 쿼리가 수행(id = 'kwan')되기 때문에 아래와 같은 방식은 문법에러(SQLSyntaxErrorException)을 발생 시킨다. (${} 사.. 2023. 3. 10. [JavaScript] 변수 파해치기( var, let, const ) 기존 JavaScript는 var 변수로만 변수 선언이 가능하였다. 그러다 let, const 변수가 등장하였는데 두 변수의 등장 이유에 대해 잘 파악해보자. # var 변수 문제점 1. var 변수 중복 선언 가능 var name = 'kwan'; var name = 'lee'; console.log(name); //lee 2. 변수 선언하기도 전에 참조 가능(변수 호이스팅) console.log(name); //undefined var name = 'kwan'; console.log(name); //kwan 3. var 변수 function-level-scope(=함수 유효범위) var a = 1 if (true) { var a = 5 } console.log(a) // 5 # let/const 가 .. 2022. 12. 16. [CS] Stack&Heap 메모리에 대하여 # 메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 한다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다. >>프로그램이 운영체제로부터 할당받는 대표적인 4가지 메모리 공간 코드(code) 영역 데이터(data) 영역 스택(stack) 영역 힙(heap) 영역 *코드 영역(텍스트 영역) - 실행할 프로그램의 코드가 저장되는 영역이다. - CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리해준다. - 프로그램이 시작하고 종료될 때까지 메모리에 계속 남아있는다. *데이터 영역(정적메모리) - 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역이다. - 프로그램 시작과 동시에 메모리를 할당받게 되고, 프로그램이 종료되면 소멸된다 *스택.. 2022. 12. 16. 자주 쓰이는 Markdown 단축키 모음 Markdown 단축키 모음 #헤더 # This is a H1 ## This is a H2 ### This is a H3 #### This is a H4 ##### This is a H5 ###### This is a H6 #코드 블럭 2022. 12. 13. [jQuery] 주요 메소드 정리 #jQuery 주요 함수(method) 정리 .add() 요소 추가 선택 // $('선택 요소').add('추가 선택 요소'); $('div').add('sample').css('color','red'); .addClass() 선택한 요소에 클래스 값 추가 // $('선택 요소').addClass('선택 클래스' or '다중 클래스 선택'); $('div').addClass('sample'); $('div').addClass('sample1 sample2 sample3'); //띄어쓰기로 클래스 구분 .removeClass() 파라미터로 받은 클래스 요소 전부 제거 // $('선택 요소').removeClass('선택 클래스' or '다중 클래스 선택'); $('div').removeClass('samp.. 2022. 12. 12. 이전 1 2 3 4 다음 728x90