728x90

전체 글 50

[TIL] FrontEnd 관련 이것저것 2 (JavaScript, WebStorage, AJAX 등등)

JavaScript는 프로토타입 기반의 스크립트 프로그래밍 언어로 객체지향 개념을 지원한다. 웹 브라우저가 HTML문서를 읽어 들이는 시점에 JavaScript Engine이 실행된다. 요약 HTML문서에서 JavaScript를 사용하려면 태그를 사용 JavaScript 코드는 HTML 파일 안에 두거나, 외부 JavaScript 파일을 HTML문서 안에 포함. 태그는 HTML 문서의 어느 위치에서나 선언 가능하며, 일반적으로 , 내부에 위치 웹 브라우저가 HTML문서를 순차적으로 해석(parsing)하므로, script 위치에 따라 로드와 실행 시점이 달라진다. ECMAScript6부터는 let과 const 키워드가 추가 구분 선언위치 재선언 var 변수 전역 스코프 가능 let 변수 해당 스코프 불가..

개발/기타 2022.03.24

[TIL] FrontEnd 관련 이것저것 1 (HTML, CSS)

백엔드에 관한 내용을 본격적으로 시작하기 전에 간단하게 프론트엔드에 관련한 것들을 공부해보았다. HTML (Hypertext Markup Language) - 웹 페이지 문서 담당 (구조) CSS (Cascading Style Sheets) - 웹 페이지 디자인 담당 (표현) JS (JavaScript) - 웹 페이지 이벤트 담당 (동작) HTML 태그는 하나의 문서에서 다른 문서로 연결하기 위해 (하이퍼링크) 사용 tag를 서로 중첩해서 사용할 수 없다. href 속성은 하이퍼링크를 클릭했을 때 이동할 문서의 URL이나 문서의 책갈피를 지정한다. target 속성은 하이퍼링크를 클릭했을 때 현재 윈도우 또는 새로운 윈도우에서 이동할지를 지정. _blank : 링크 내용이 새 창이나 새 탭에서 열린다. ..

개발/기타 2022.03.23

[Java] Java - 자바 관련 이것저것 (Overriding, Singleton, Serializable, Comparable, Comparator 등등)

생성자 생성자 : 객체를 생성할 때 호출하는 메서드 비슷한 것 (new 키워드와 함께 호출하는 것, 일반 멤버 변수의 초기화나 객체 생성 시 실행돼야 하는 작업 정리) 생성자 작성 규칙 : 메서드와 비슷하나 리턴 타입이 없고 이름은 클래스 이름과 동일 기본 생성자(default constructor) : 기본 생성자의 형태는 파라미터가 없고 구현부가 비어있는 형태(생성자 코드가 없으면 컴파일러가 기본 생성자 제공) 파라미터가 있는 생성자 : 생성자의 목적이 일반 멤버 변수의 초기화 -> 생성자 호출 시 값을 넘겨줘서 초기화 (주의! 파라미터가 있는 생성자를 만들면 기본 생성자는 추가되지 않는다.) this : 참조 변수로써 객체 자신을 가리킴(참조 변수를 통해 객체의 멤버에 접근했던 것처럼 this를 이..

개발/Java 2022.03.22

[DB] MySQL load data infile 에러 - Error Code: 1262 , Error Code: 1300, Error Code: 2013 해결 방법

제목에 있는 3개의 Error Code는 공공데이터를 이용해서 서울의 상권정보를 csv파일로 아래와 같이 load data infile을 해서 db에 넣으려고 할 때 생긴 에러들이다. load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\"txt or csv 파일명"' into table "테이블명" character set utf8mb4 fields terminated by '구분자' lines terminated by '\r\n' ignore 1 rows; 각각 에러들에 대한 간단한 한 줄 설명을 적을 테니 자신에게 해당되는 내용이면 바로 고쳐보고 그래도 안되면 상세 설명도 읽으면 도움이 될 수도 있을 것이다. 1. Error Co..

개발/CS 2022.03.21

[DB] RDBMS, MySQL, JDBC

이번 주는 데이터베이스에 관해서 공부했다. 대학교 3학년 때 전공 수업으로 기초 데이터베이스를 배운 적이 있어서 어렵지 않게 공부할 수 있었던 것 같다. 다음 주에는 배운 DB를 바탕으로 간단하게 프로젝트에 연동시켜보고 백엔드에 대해 공부를 시작할 것 같다. RDBMS (Relational DataBase Management System) RDBMS는 한국말로 직역하면 관계형 데이터베이스 관리 시스템이다. 테이블 기반으로 데이터베이스를 관리하는데 하나의 테이블은 여러 개의 Column으로 구성된다. 같은 데이터가 여러 컬럼이나 테이블에 존재하면 데이터 수정 시에 문제가 발생할 가능성이 높아져 정규화를 통해 문제를 해결할 수 있다. 그렇다고 정규화가 만능은 아니고 때에 따라서 역정규화가 필요로 할 때도 있..

개발/CS 2022.03.19

[Java] 자바 BufferedWriter를 이용한 int형 출력

자바에서 System.out.println로 많은 양을 출력하면 시간이 오래 걸리기 때문에 BufferedWriter를 사용하여 빠른 출력을 한다. 근데 BufferedWriter를 사용하다 보면 숫자를 출력할 때 원하는 값이 나오지 않을 때가 있다. 1을 출력하고 싶어서 bw.write에 1을 넣었다고 해보자. public static void main(String[] args) throws IOException { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write(1); bw.flush(); bw.close(); } 결과는 아래와 같다. 분명히 int형과 String형을 구분 지어 매개변수로 전달받는..

개발/Java 2021.11.27

[네트워크] OSI 모델, TCP/IP 모델이란? (feat. 캡슐화, 역캡슐화)

OSI 모델, TCP/IP 모델에 대해서 설명하기 앞서 프로토콜에 대해서 간단하게 알아보자. 우리가 살아가면서 사람과 사람 사이에 지켜야 하는 여러 가지 규칙이 있듯이, 네트워크에서도 통신을 하기 위한 규칙이 있다. 이것을 프로토콜(protocol)이라고 한다. OSI 모델 OSI 모델(Open Standards Interconnection model)이란 ISO(국제표준화기구)가 1977년에 정의한 국제 통신 표준 규약이다. 네트워크의 기본 구조를 7개의 계층으로 나눠서 표준화한 통신 규약으로 현재 다른 모든 통신 규약의 기반이 된다. OSI 모델의 7 계층 구조 계층 설명 7계층 : 응용 계층 (Application Layer) 이메일, 파일 전송, 웹사이트 조회 등 애플리케이션에 대한 서비스를 제공..

개발/CS 2021.11.16

[Java] 자바 가상 머신 JVM(Java Virtual Machine)이란?

JVM JVM은 '자바 가상 머신(Java Virtual Machine)'의 줄임말이다. 가상 머신이란 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이다. 쉽게 생각하면 실제 컴퓨터(하드웨어)가 아닌 소프트웨어로 구현된 컴퓨터이므로 컴퓨터 속의 컴퓨터라고 생각하면 된다. 따라서 자바 가상 머신은 자바를 실행하기 위한 컴퓨터 속의 컴퓨터(가상 머신)인셈이다. 자바로 작성된 애플리케이션을 실행하기 위해서는 반드시 JVM이 필요하다. Java 애플리케이션 ◀ ▶ JVM ◀ ▶ OS ◀ ▶ 컴퓨터(하드웨어) 일반 애플리케이션 ◀ ▶ OS ◀ ▶ 컴퓨터(하드웨어) 일반적인 애플리케이션은 OS만 거치고 바로 하드웨어로 전달되지만 Java로 작성된 애플리케이션은 JVM을 한번 더 거치기 때문에 속도가 느리다..

개발/Java 2021.11.01

[Java] 자바 컬렉션 시간복잡도 (Collection Time Complexity)

자바는 다양한 컬렉션(Collection)을 제공한다. 같은 기능을 동작하는 코드여도 어떤 컬렉션을 사용했는지에 따라 성능 차이가 크게 날수있다. 이 차이는 데이터가 많아질수록 커질것이다. 따라서 컬렉션들의 특징과 각 연산의 수행시간을 고려해서 가장 적합한 컬렉션을 정하는것이 중요하다. 다음은 자바 컬렉션의 시간복잡도를 정리한 표이다. List add() remove() get() contains() Data Structure ArrayList O(1) O(n) O(1) O(n) Array LinkedList O(1) O(1) O(n) O(n) Linked List CopyonWriteArrayList O(n) O(n) O(1) O(n) Array Set add() contains() next() Dat..

개발/Java 2021.10.30

[알고리즘] 위상 정렬 (Topology Sort)

위상 정렬 알고리즘은 방향 그래프의 모든 노드들을 방향성에 거스르지 않도록 순서대로 나열하는 정렬 기법을 의미한다. 위상 정렬 위상 정렬은 정렬 알고리즘의 일종이다. 위상 정렬은 순서가 정해져 있는 일련의 작업을 차례대로 수행해야 할 때 사용할 수 있는 알고리즘이다. 조금 더 이론적으로 설명하자면, 위상 정렬이란 방향 그래프의 모든 노드를 '방향성에 거스르지 않도록 순서대로 나열하는 것'이다. 위상 정렬 알고리즘을 자세히 살펴보기 전에, 먼저 진입차수를 알아야 한다. 진입차수란 특정한 노드로 '들어오는' 간선의 개수를 의미한다. 위상 정렬 알고리즘은 다음과 같다. 1. 진입차수가 0인 노드를 큐에 넣는다. 2. 큐가 빌 때까지 다음의 과정을 반복한다. 1. 큐에서 원소를 꺼내 해당 노드에서 출발하는 간선..

개발/알고리즘 2021.10.28
728x90