티스토리 문제로 Lightbox를 사용할 수 없게 되었다. 그래서 대안을 찾다가 FancyBox를 넣은 분의 글을 찾게되어 정리해둔다. 1. HTML head에 아래의 스크립트를 추가해준다. 기존의 티스토리 코드의 lightbox 부분을 삭제하고 data-fancybox="fancybox" 속성을 삽입한다. 아쉽게도 이 설정을 적용하면 전체 이미지가 fancybox라는 그룹으로 묶이게 되기 때문에 무조건 이미지 보기는 갤러리 형식으로 고정된다. 원래 fancybox는 data-fancybox만 넣어줘도 사용할 수 있지만 티스토리의 lightbox가 아직 완전히 삭제되지 않았기 때문에 data-fancybox만 넣을 시에는 이미지를 클릭해도 동작하지 않는다. 원본 코드에는 맨 밑에 한 줄이 더 있는데, 확..
warning: in the working copy of 'README.md', LF will be replaced by CRLF the next time Git touches it Git이 다음에 해당 파일을 터치할 때 LF가 CRLF로 대체된다는 점에 대한 에러메시지 개행문자와 Git 개행문자는 CR (carriage-return)와 LF (linefeed) 두 가지 주요 문자로 이루어져 있습니다. 이 개행문자는 플랫폼 별로 서로 다른 조합으로 사용됩니다. 이 점이 문제를 일으킬 수 있어 형상관리 시스템이 경고를 띄워주는 것입니다. autocrlf 설정 실패 처음 시도한 해결책은 autocrlf 설정을 변경하는 것이었습니다. 이 설정은 개행문자를 자동으로 변환해주는 역할을 합니다. 아래와 같이 설정할..
액션플랜-주간-월간-연간 계획과 회고를 한눈에 관리할 수 있는 템플릿 2년 간 이런저런 시행착오를 겪으며 지금의 형태가 되었습니다. 배포를 위해 실제 사용중인 양식 중 필수적인 항목만 넣었으니 입맛에 맞게 가감하여 사용해주세요😄 이 템플릿의 특징 액션플랜-주간-월간-연간까지 모두 관계형 데이터베이스로 연결되어 있습니다. 지속 가능한 기록을 위해 편리함과 실용성에 중점을 두었습니다. 목표 DB 하나로 세부 목표 작성 및 관리가 가능하며, 시각화에도 활용할 수 있습니다. ❓ 활용법 저는 개인적으로 일일기록을 위해 사용중인 대시보드가 있습니다. 그 대시보드에서의 활용법을 소개합니다. 매일 확인하기 위해 대시보드에 놓은 DB와 속성들 액션 플랜 DB 매일 체크&달성도 속성 주간 DB 주 시작 속성만(하고 싶은 ..
2022년 10월 30일, 그러니까 개발 관련 지식이 거의 없었던 시절의 기록이다. 지금은 이런저런 편의성 때문에 다시 티스토리로 돌아왔지만 다시 정적 사이트 생성기를 이용한 블로그 만들기를 시도하고 있다. 지금 시점에서 보면 얼마나 우당탕탕 좌충우돌했는지 재미있는 (..) 기록. 사건의 발단 카카오 서버 문제로 티스토리가 며칠간 제대로 표시가 안 되는 오류가 있었다. 티스토리가 그들에게 얼마나 뒷전인지 깨닫고 ㅠㅠ 지금까지 마크다운 문제로 소소하게 불편했기에 이참에 티스토리를 탈출하여 다른 곳에 블로그를 만들고자 하는 결심을 하게 되었다. 그러다가 정말 우연히 react-notion-x로 직접 만들었다고 써있는 태호님의 페이지 https://taeho.io/ 를 보고 감동했다. “노션을 웹페이지로 (o..
접근 제어자 클래스에서 public, default 두 가지만 사용 가능하다. public을 지우면 default가 되며 같은 패키지 안에서만 접근이 가능해진다. 메소드에서 public, protected, default, private 네 종류 모두 사용 가능하다. 기본적으로는 private로 작업하게 된다. 접근 제어자 접근 범위 클래스 패키지 상속 전체 public 접근 제한 없음 ○ ○ ○ ○ protected 동일 패키지와 상속받은 클래스 ○ ○ ○ default 동일 패키지 ○ ○ private 클래스 ○ Static class Player { private String name; private int count; // 기본 초기값 0 public Player(String name) { thi..
다형성 polymorphism 다형성은 객체지향에서 중요한 개념으로, 하나의 객체나 메소드가 여러 형태를 가질 수 있는 것을 뜻한다. 인터페이스 정리에서 사용했던 GamingConsole 예시로 알아보는 다형성 public interface GamingConsole { // GamingConsole 인터페이스 선언 public void up(); public void down(); public void right(); public void left(); } 우선 이렇게 GamingConsole 인터페이스를 선언해준다. up, dow, right, left라는 메소드가 정의만 되어있을 뿐 구현은 되어있지 않다. 이제 이 메소드들을 구현하는 클래스인 MarioGame과 ChessGame을 각각 만들어준다. ..
추상클래스 활용 '나는 적용법을 제공하고 싶지 않고 대신 알고리즘을 제공하겠다' 하는 경우 '이건 하위 클래스들이 해결해야 하는 문제다' 하는 경우 특징 추상클래스는 다른 추상클래스를 상속할 수 있다 abstract class B extends A 추상클래스는 정의된 변수들을 가질 수 있고 정의된 메소드도 가질 수 있다. 인터페이스 추상클래스와 인터페이스는 아주 다른 개념이다. 인터페이스는 선언을 제공할 뿐 정의를 내리는 게 아니다. 인터페이스에 대해 사고하는 방법 게이밍 콘솔이라고 생각한다. 어떤 게임을 하든지 버튼은 그 게임에서 정의된 역할을 한다. public interface GamingConsole { // GamingConsole 인터페이스 선언 public void up(); public v..
상속 Inheritance SuperClass = 상위 클래스 = 부모 클래스 SubClass = 하위 클래스 = 자식 클래스 다른 클래스에서 이미 사용중인 코드를 재사용할 때 굉장히 유용하다. 단, B(하위) Is a A(상위) 관계일때만 사용하는 걸 추천한다. sub클래스에서 super 클래스의 값들에 접근하려면 super를 쓰면 된다. 예를 들어 super.getEmail() 모든 클래스 = Object클래스의 하위 클래스 아무것도 상속받지 않는 클래스도 사실 객체를 상속받고 있다. Person person = new Person( ); 이렇게 클래스 인스턴스를 생성해보자. 그다음 행에 Person을 입력한 후 .을 입력하자마자 Person 클래스에 없는 메소드(notify, hashCode, to..
생성자constructor 지금까지 사용해왔던 setSpeed 메서드 없이도 특정 값을 전달하는 MotorBike 객체를 생성하고 싶을 때 생성자를 활용하면 된다. public class MotorBike { private int speed; MotorBike(int speed) { //생성자 this.speed = speed; } public int getSpeed() { //getter메서드 return speed; } public void setSpeed(int speed) { //setter메서드 System.out.println(speed); System.out.println(this.speed); this.speed = speed; } } public class MotorBikeRunner {..