분류 전체보기 70

자바 기초부터 모던 자바까지 - 내부&중첩 클래스편

목표 : 자바의 내부&중첩 클래스에 대해 알아본다. Inner Class 클래스에 전반적인 내용을 모두 적진 않을 것이다. 객체 지향의 거대한 3요소인 상속, 다형성, 캡슐화 등에 대해서는 너무나도 많은 자료가 있으니 별도로 알아보도록 하자. 지금 알아볼 것은 Class안의 Class의 동작에 대해 알아볼 에정이다. Inner Class(내부 클래스)는 중첩 클래스라고도 표현하는 사람도 많지만, 약간 다르게 설명하는 경우도 있다. 중첩 클래스는 클래스나 인터페이스 내부에 static으로 선언된 클래스다. 포스팅을 위해 참고한 자료에서도 중첩 클래스는 내부 클래스와 동일 시하여 표현하고 있어, 하기 내용이 조금 헤깔릴 수 있으나 명확하게 구분하는 사람도 있으니 참고하도록 하자. 클래스 내부에 선언한 클래스..

Programming/Java 2022.07.02

자바 기초부터 모던 자바까지 - 객체 편

목표 : 자바의 객체의 개론을 알아본다. Object 객체가 무엇인지를 정의하고자 한다기 보다, 내가 아는 내용을 정리하고자 한다. 세상 모든 것을 개체라고 할 수 있다. 개체 중에서 내가 관심을 가지는 영역을 객체로 바라보자. 그리고, 그 객체의 성격과 행동, 서로간의 소통들을 정의해나갈 수 있을 것이다. 결국 그 객체에 대해 내가 관심이 있고, 다루고자 하는 영역들을 성격과 행동이라는 용어로 정리하다 보면 특정해 나갈 수 있게 된다. 이를 클래스라는 용어로 불러본다. 사람이라는 객체가 있다. 철학적인 물음으로 사람이란 무엇인가?에 대해서 대답하고자 하는건 아니다. (나라는 것은 무엇인가? 라는 질문으로 넘어가면 철학과 과학의 오묘한 결합이 나오게 된다) 그렇지만 우리가 원하는 어떠한 결과물을 위해서는..

Programming/Java 2022.07.02

[java] Remove Nth Node From End of List

[참고문제] : https://leetcode.com/problems/remove-nth-node-from-end-of-list/ Remove Nth Node From End of List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 자체적인 자료구조를 제공하고 푸는 문제다. 자바는 Call By Value지만, 그 주소값(정확히는 주소를 가리키는 값)을 가지므로 마치 Call By Reference처럼 동작한다. 위 문장에 가끔 Deep Cop..

Algorithm 2022.07.02

[java] Container With Most Water

[참고문제] : https://leetcode.com/problems/container-with-most-water/ Container With Most Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 간단히 2중 포문으로 풀 수 있겠지만, Time 제한에 걸릴게 뻔해보였다. 생각의 흐름 - 일단 2중 포문으로는 잘 구현되는지 보자. 이중포문을 구현했지만 역시나 시간 이슈가 생겼다. 생각의 흐름 - 양쪽에서 줄여나가자. 늘 그렇듯, 이런 ..

Algorithm 2022.07.02

자바스크립트 기초부터 모던 자바스크립트까지 - 기초편

목표 : 자바스크립트의 가장 기초적인 내용부터 알아본다. 변수 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 변수 선언 변수를 생성하는 것 값을 저장하기 위한 메모리 공간을 확보하고, 변수 이름과 확보된 메모리 공간의 주소를 연결하여 값을 저장할 수 있게 준비하는 것 변수를 사용하려면 반드시 선언이 필요하며, var, let, const 키워드를 사용한다. 선언 단계 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알린다. 초기화 단계 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화한다. 변수 선언의 실행 시점과 변수 호이스팅 console.log(score) // undefined var score; /..

자바 기초부터 모던 자바까지 - 기초편

목표 : 자바의 가장 기초적인 내용부터 알아본다. java만큼 아직 대중적인 프로그래밍 언어는 없다. 점차 포스팅으로 모던 자바에 대해 정리하겠지만, 알았으면서도 오랜만에 보면 새로울 수 있는 포인트들이 있다. 변수가 무엇인지, 자료형이 무엇인지 이런 내용은 아니지만, 조금은 익숙해져야 할 내용으로 작성하려 한다. 상수와 리터럴이 뭐지? 상수(constant)는 알다 시피, 변하지 않는 수를 말하고 final이라는 키워드를 쓴다. final을 쓰면, 변수는 상수가 되고, 상수는 변할 수 없다. 리터럴(literal)은 프로그램에서 사용하는 모든 숫자, 값, 논리 값 (ex> 10, 3.14, 'A', true)을 의미 한다. 그 중에서 리터럴은 상수풀(constant pool) 영역에 저장되어 있다. 변..

Programming/Java 2022.07.01

[java] Rotate Array

[참고문제] : https://leetcode.com/problems/rotate-array/ Rotate Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 생각의 흐름 - Circular Linked List 다. 보자마자, Circular Linked List로 구현하면 될 것이란 건 알았다. 다만, 자료구조를 만드는게 목표가 아니니 list로 처리하기로 함. 생각의 흐름 - 어디부터 끊어지는 지 보자. k는 받지만, 모듈러 연산은 해야..

Algorithm 2022.06.24

[java] Median of Two Sorted Arrays

[참고문제] : https://leetcode.com/problems/median-of-two-sorted-arrays/ Median of Two Sorted Arrays - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 생각의 흐름 - 이미 정렬되어 있다. 이미 정렬이 되어 있으니, 각각의 배열에서 계속 더 작은 수를 확인한다. 생각의 흐름 - 중앙값 까지만 확인해도 된다. 어짜피 필요한 건 중앙값이고, 중앙값까지만 확인하면 계산할 수 있다. 생각의..

Algorithm 2022.06.23

[java] Longest Substring Without Repeating Characters

[참고 문제] : https://leetcode.com/problems/longest-substring-without-repeating-characters/ Longest Substring Without Repeating Characters - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이 생각의 흐름 - 저장하자. 필요한 건 가장 긴 길이가 무엇이냐? 그리고 이 문자가 나왔는가? 이 2가지를 저장할 필요가 있었다. 가장 긴 길이 여부는 max 계산을..

Algorithm 2022.06.23

자바스크립트는 무엇일까?

목표 : 자바스크립트가 무엇인지, 생김새(?) 를 알아보자! 자바스크립트로 처음 개발을 시작해보았으니, 거의 10년 가까이 보고 지낸 언어다. 그럼에도 제대로 공부한건 불과 얼마 안되었기에, 한번 기초이론을 정리해보고자 한다. 자바스크립트는 기본적으로 웹페이지의 보조적인 기능(생동감을 불어주는)을 수행하기 위해 만들어졌다. 처음에는 여러 파생 언어들이 나와, 호환이 완결적이지 않은 크로스 브라우징 이슈가 발생하기 시작한다. 그로 인해, 꾸준히 발전하며 ECMAScript라는 표준 고유 명세를 가지게된 언어다. 어떻게 성장해왔을까? 최초에는 앞서 말한 대로, 웹페이지의 보조역할을 하였고 대부분 웹 서버로직 + HTML/CSS 랜더링 수준이었다. 더보기 랜더링 : HTML, CSS, 자바스크립트로 작성된 문..