본문 바로가기

전체 글

(104)
다형성(Polymorphism) 다형성(Polymorphism) 다형성의 의미 자바의 OOP개념 (다형성, 캡슐화, 추상화, 상속) 중 하나 슈퍼클래스의 동일한 메소드라도 구현체에 따라 내부동작을 변하게 하는 것 다형성을 가장 잘 보여주는 개념으로는 오버로딩과 오버라이딩이 있다. Overloading 오버로딩은 하나의 클래스에서 같은 이름의 메소드를 가질 수 있게 한다. (인자는 달라야 함) class test{ public void a(int num){ System.out.println("정수입니다."); } public void a(double num){ System.out.println("실수입니다."); } public void a(String param){ System.out.println("문자입니다."); } } publi..
intelliJ에서 mocha 설치하기 intelliJ에서 mocha 설치하기 프로젝트 이름 : gogo / 테스트 다이렉트 이름 : test / 파일이름 : testcode.js 터미널에서 mocha 설치하기 ctrl + tab (Switcher)을 열고 Terminal을 선택한다. 터미널 창에 npm init을 입력해준 후, 새 명령어 입력창이 나올 때까지 엔터(Enter)를 쳐준다. pakage.json이 추가된 것을 볼 수 있다. (만약 없으면 새로 고침을 해주면 된다.) npm install mocha --save을 입력해준다. ( —save를 해주는 이유는 package.json에 의존성 주입을 해주기 위해서이다.) Edit Configurations Run - Edit Configurations 를 클릭한다. +를 누른 후 Moc..
기본적인 정렬 방법들(선택, 삽입, 버블)에 대해 알아보자 기본적인 정렬 방법들 (선택, 삽입, 버블) 이 게시글은 정렬의 코드보단 정렬의 방법과 특징에 비중을 두고 있습니다.응용된 정렬 방법들 (셸, 병합, 퀵) 보러가기 정렬의 종류와 시간복잡도 정렬은 버블 정렬, 선택 정렬, 삽입 정렬, 셸 정렬, 병합 정렬, 퀵 정렬로 이루어져있으며, 각각의 특징이 있으므로 상황을 고려해서 쓰는 게 좋다. 기본적인 정렬 알고리즘(1) - 선택 정렬(Selection Sort) 선택 정렬의 과정선택 정렬은 앞에서부터 가장 작은 수를 찾아 key의 값과 교체하는 정렬 방법이다. key(7)부터 끝까지의 수들 중, 가장 작은 수(1)를 찾아서 key의 값과 바꾼다. key(11)부터 끝까지의 수들 중, 가장 작은 수(3)를 찾아서 key의 값과 바꾼다. key(15)부터 끝까지..
순환 함수(Recursion Function) 순환함수(Rescursion Function)이란? 함수가 자기 자신을 반복적으로 호출하는 것 재귀함수라고도 한다. 그림으로 이해하는 순환함수 간단한 예제로 이해하는 순환함수 window.onload = main(); function main() { whoAreYou(); // = 너는 누구야? } function whoAreYou() { console.log("저번에도 누가 물어봤었지"); whoAreYou(); } 위 그림을 코드로 옮긴 모습이다. 이걸 실행하고 콘솔창을 확인하면 자기 자신을 계속 호출하는 무한 루프를 실행하고 있는 것을 확인할 수 있다. 즉, 순환함수란 자기 자신을 반복적으로 호출하는 것이다. 그렇다면 순환함수는 무한루프밖에 안될까? 방금 보여준 예시에서 외계인한테 이런 상황이 3번..
자바스크립트와 이벤트 루프(Event Loop) Event Loop function a(){ setTimeout(function(){ console.log("first"); }, 0); for(let i=0; i
소수 구하기의 시간 복잡도 줄이기 알고리즘(에라토스테네스의 체) 소수 구하기의 시간 복잡도 줄이기 알고리즘(에라토스테네스의 체) 문제 링크 알고리즘 연습 - 소수 찾기 | 프로그래머스 가장 처음 코드 - 기본적인 접근 function solution(num) { const START = 2; // 소수는 2부터 시작하기 때문에 start를 2로 지정 let isPrime; // i%j===0 이면 소수이기 때문에 check를 1로 바꿔주어 sum+=1을 하지 않게 한다. let sum = 0; // 1. 이중 for문 만들기 (i : 2부터 num까지 반복 , j : 2부터 num까지 반복 ) for ( let i = START; i
OCJA(1Z0-808) 시험후기, 문제 유형 + 준비방법 OCJA(1Z0-808) 시험후기, 문제 유형 + 준비방법 최근에 OCJA 자격증(1Z0-808) 시험을 봤다. OCJA가 시행한지 얼마 지나지도 않아서 그런지 정보가 없어서 시험 시작할 때 조금 긴장이 되었는데, 문제를 보자마자 긴장한게 뻘쭘할 정도로 쉬웠다. OCJA나 OCJP나 덤프만 외우면 딸 수 있는 자격증이라는 인식이 있기도 하고, 평판에 비해 가격이 너무 비싸다(25만 원 정도) ㅠㅠ 시험시간은 150분인데, 나 같은 경우에는 20분 만에 풀고 그냥 나왔다. 문제 유형 덤프에 나온 문제 그대로 나온다. 대신 보기는 순서가 바뀌어서 나온다. 예를 들어서 Q. 토끼와 거북이 중에 누가 더 빠른가? 1) 토끼 2) 거북이 3) 토끼에서 오류가 난다. 4) 거북이에서 오류가 난다. 덤프가 이런 식으..
깃(Git)에 대한 간단한 설명부터 레파지토리 생성 후 커밋, 푸쉬하기까지 깃에 대해 알아보자!(정의, 장점, 영역) 깃은 뭐고 깃허브는 뭘까? - 깃(Git)과 깃허브(Github)의 차이 깃(Git) 버전 관리 시스템(VCS)툴 중 하나 (버전 관리 시스템(VCS) ≠ 깃) 깃허브(Github) 깃을 저장하는 서버 → 그래서 우리가 홈페이지로 들어갈 때 github로 들어간 것! 굳이 깃을 쓰는 이유 - 깃의 장점 분산 형상 관리 시스템(DVCS = Distribute Version Control System) 각자의 컴퓨터에서 작업을 하는 것 = 저장소를 통째로 복사한다 → 저장소가 로컬(내 컴퓨터)에 있음 이로 인해 생기는 장점 속도가 매우 빠르기 때문에 빠른 협업이 가능하다. 커밋에 부담이 없다. 원격저장소와의 연결이 끊겨도 버전관리가 가능하다. 언제든지 복원이 가능하..