깃허브에서 운영하는 리포지토리 gitignore 목적은 가장 일반적이고 유용한 템플릿 모음을 큐레이션하는 것이며, 가능한 모든 프로젝트를 커버하는 것이 아니라고 합니다. 이를 활용하면 손쉽게 gitignore 파일을 작성할 수 있습니다. https://github.com/github/gitignore GitHub - github/gitignore: A collection of useful .gitignore templates A collection of useful .gitignore templates. Contribute to github/gitignore development by creating an account on GitHub. github.com 폴더는 root, global, communi..
알고리즘이란? 알고리즘이란 뭔가를 수행하는 방식의 집합이다. 알고리즘은 문제나 과제를 해결하기 위한 절차다. 문제 해결은 예를 들자면 사용설명서, 요리 레시피, 악보 같은 것이다. 대부분의 경우 문제 해결은 그저 우리가 가지고 있는 직관이나 생각들을 기계나 다른 사람들이 이해할 수 있는 방식으로 번역하는 것에 불과하다. 알고리즘을 기계가 이해할 수 있도록 프로그래밍 언어로 작성한 것이 프로그램이다. 예를 들어 로봇청소기는 사람이 미리 만들어 둔 알고리즘에 따라 움직이는 것이다. 방 청소라는 일을 하나씩 분해하여 순서대로 실행하도록 절차를 지시한 것이다. 절차가 알고리즘이기 위한 조건 정확한 결과를 얻을 수 있어야 한다. 문제 해결 = 올바른 답 출력 or 원하는 결과를 얻을 수 있다. 얻어진 결과가 틀리..
모든 개발자를 위한 HTTP 웹 기본 지식을 듣고 정리한 내용입니다. 네트워크의 흐름 IP 프로토콜을 보완한 것이 TCP와 UDP IP 프로토콜은 도착지와 목적지의 정보를 갖고 있다 비연결성 비신뢰성 IP 프로토콜의 문제점이란? 순서가 뒤죽박죽으로 도달할 수 있다. 패킷이 소실될 수 있다. 상대방의 연결이 끊겨있는데도 보내려고 할 수 있다 패킷이라는 단어 패키지+버킷의 합성어 전송 과정 데이터를 만들면 (ex.채팅 메시지) 소켓 라이브러리로 전달되고 TCP 정보를 생성, 메시지 데이터 포함해서 내리고 IP 패킷 생성, TCP 데이터를 포함해서 내리고 랜카드로 나갈 땐 이더넷 프레임을 포함해서 나간다 TCP 3 way handshake SYN : 접속요청. 연결되어있나 확인하는 것 SYN+ACK : 요청 ..
배열 등을 순회하며 특정 동작을 실행시킬 수 있다. for of 내용을 바꾸지 않는다면 let을 const로 바꿔도 무방하다. const array1 = ['a', 'b', 'c']; for (const element of array1) { console.log(element); } // Expected output: "a" // Expected output: "b" // Expected output: "c" let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]); for (let entry of iterable) { console.log(entry); } // [a, 1] // [b, 2] // [c, 3] for (let [key, value] of iter..
1. PC의 페이징과 동일하게 나오게 하기 #paging span:not(.selected) { display: inline-block; } 모바일에서도 위와 같은 모양으로 나오도록 하려면 selected 클래스(현재 선택된 페이지)가 아닌 span의 display를 none에서 inline-block으로 변경해주면 된다. 2. 최대 페이지수만 추가해주기 위와 같은 결과가 나오도록 하고 싶었다. 최대 페이지수가 나오고 그 사이에 슬래시 모양이 표시되게 하는 디자인이다. 이를 위해서 selected 클래스가 아닌 다른 페이지들은 display none을 적용해 주고, 그 중 마지막 페이지만 inline-block으로 보이게 했다. 마지막 페이지는 li:nth-last-child로 지정해줄 수 있다. 이 경..
var로 정의된 opacity값을 쓰다가 설정한 색 대로 안 나오는 걸 체험(?)으로 알게된 것들이다. 보통 복붙을하면 콤마가 들어간 값인 경우가 많은데 현재의 CSS는 opacity값 앞에 슬래시가 있었다. 이 경우 작동하지 않는다. 사실 그냥 생각해보면 당연히 저렇게 안 쓸 것 같은데 var 때문에 자연스럽게 넘어가버렸다.. 사용 가능 rgb(127 179 216 / var(--tw-text-opacity)); rgba(127 179 216 / var(--tw-text-opacity)); rgba(127, 179, 216, var(--tw-text-opacity)) 사용 불가능 rgba(127, 179, 216 / var(--tw-text-opacity))
cateBadge 로 변수 선언한 부분은 아래 캡쳐에서 썸네일 좌측 상단에 있는 Record 부분을 말하는 것이다. 원래 카테고리명은 상위카테고리/하위카테고리로 표시가 되지만, 하위카테고리만 표시되도록 하고 싶은 경우에 활용 가능하다. lastIndexOf & substring lastIndexOf() 메서드는 주어진 값과 일치하는 부분을 fromIndex로부터 역순으로 탐색하여, 최초로 마주치는 인덱스를 반환합니다. 일치하는 부분을 찾을 수 없으면 -1을 반환합니다. substring() 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다. IndexOf 함수의 종류인 lastIndexOf를 사용하여 뒤부터 탐색하여 최초로 마주치는 / 부터 잘라주면 ..
public class C { private int a; public void set(int a) {this.a=a;} public void add(int d) {a+=d;} public void print() {System.out.println(a);} public static void main(String args[]) { C p = new C(); C q; // q가 있긴 하지만 a변수가 메모리상에 생성되지 않았다. (new를 하지 않았으므로) p.set(10); q=p; // q는 p의 주소를 참조하게 된다. p.add(10); q.set(30); p.print(); } } new 생성자를 하지 않으면 클래스 안에 있는 요소들이 메모리상에 생성되지 않는다.