본문 바로가기

분류 전체보기

(109)
크롬에서 파이어베이스 변경 내역이 적용이 안될 때 해결방법 문제의 발단 파이어베이스로 호스팅을 하기 위해 호스팅을 했는데 경로 문제로 인해 오류가 났다. 소스코드를 수정하고 다시 업데이트(deploy)를 한 후에 새로고침을 하니 업로드가 안되어있었다. 분명 Deploy complete 라고 나왔는데… 해결 방법 이것저것 찾아보다 속는셈 치고 시크릿창(Ctrl + Shift + N)을 눌러 접속하니 갑자기 됐다! 설마 … 하고 크롬의 캐시를 삭제하고 다시 들어가니 잘 들어가진다. 아마 캐시를 저장해둬서 새로고침을 해도 별 반응이 없었던 것 같다. 정리 시크릿창을 열어 확인해본다. 크롬의 캐시를 삭제한 후에 확인해본다.Ctrl + R (강력한 새로고침) 들어갈 때 마다 캐시를 삭제하기는 귀찮으니 강력한 새로고침(Ctrl+R)을 하면 될 것 같다.
데이터베이스의 트랜잭션(Database Transaction) 트랜잭션이란?(Transaction) 처음부터 끝까지 아무 이상없이 모든 작업이 끝나야만 성공하는 작업이 있다. 예를들어 카페에서 음료를 살 때의 상황을 예로 들어보자면 카페에서 주문을 할 수 있는 차례가 될 때 까지 기다린다. 메뉴를 선택한다. 직원에게 돈을 지불한다. 주문 완료 위의 4가지의 과정을 모두 마쳐야한다. 만약 여기서 한 과정이라도 빠지게 되면 정상적으로 주문을 했다고 볼 수 없다. 이처럼 한꺼번에 실행되어야하는 일련의 과정을 트랜잭션이라고 한다. 모두 완료하면 COMMIT, 하나가 실패하면 취소되는 ROLLBACK이라고 한다. COMMIT한 경우에는 작업 결과가 데이터베이스에 반영이 된다. ROLLBACK한 경우에는 작업이 모두 취소되어 데이터베이스에 영향을 끼치지 않는다. 트랜잭션의 성..
추상화(Abstract) 추상화란? 객체에서 공통된 속성과 행동을 추출하는 것이다. 자바에서 추상화를 이용하는 방법은 추상 클래스 또는 인터페이스가 있다. 추상 클래스(Abstract Class) 추상 메소드를 포함할 수 있는 클래스이다. abstract를 붙여 사용할 수 있다. 부모로서의 사용은 가능하지만 객체로서의 사용은 불가능하다. 추상 메소드(Abstract Method) 본체가 없는 메소드이다. 리턴 타입 앞에 abstract를 붙여 사용할 수 있다. 추상 메소드의 본체는 추상 클래스를 상속받은 후 재정의할 수 있다. abstract class Animal{ // 추상클래스 public abstract void eat(); //추상 메소드 public abstract void sleep(); //추상 메소드 public..
MVC 패턴(MVC Pattern) MVC란? 애플리케이션을 모델(Model), 뷰(View), 컨트롤러(Controller)인 세 부분으로 나눈 디자인 패턴 Model : 데이터, 비즈니스 로직 View : 사용자에게 보여주는 화면 Controller : Model과 View를 연결함 ⓐ : User가 요청함 (ex. 웹 페이지에 접속함) ⓑ : Controller가 Model에게 로직을 받아옴 (ex. 웹 페이지에 해당하는 로직을 받아옴) ⓒ : Controller가 View에게 뿌려줌 (ex. 해당하는 로직을 View에게 뿌려줌) ⓓ : User는 화면을 볼 수 있음 (ex. 웹 페이지를 볼 수 있음) 모델(Model) 뷰와 컨트롤러에 의존하지 않는다. 데이터베이스나 비즈니스 로직(+DAO)처럼 데이터와 데이터가 동작하는 방식을 제공..
응용된 정렬 방법들 (셸, 병합, 퀵)에 대해 알아보자 응용된 정렬 방법들 (셸, 병합, 퀵) 이 게시글은 정렬의 코드보단 정렬의 방법과 특징에 비중을 두고 있습니다.기본적인 정렬 방법들 (선택, 삽입, 버블) 보러가기 정렬의 종류와 시간복잡도 정렬은 버블 정렬, 선택 정렬, 삽입 정렬, 셸 정렬, 병합 정렬, 퀵 정렬로 이루어져있으며, 각각의 특징이 있으므로 상황을 고려해서 쓰는 게 좋다. 응용된 정렬 알고리즘(1) - 셸 정렬(Shell Sort) 셸 정렬의 과정 셸 정렬은 삽입정렬을 보완한 알고리즘이다. 일정한 간격 gap끼리 묶어 삽입 정렬을 수행(gap=배열의 길이/2) 간격을 줄여나가면서(gap = gap/2) 간격(gap)이 1이 될 때까지 삽입정렬을 반복 직접 짧은 정렬을 만들까하다가 셸 정렬을 보여주기에는 조금 긴 정렬이 나을 것 같아 동영상..
다형성(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)부터 끝까지..