전체 글 143

Mysql 기본 명령어

MySQL은 DataBase의 종류 중 하나로 많은 웹 애플리케이션들이 MySQL을 기본 DB로 채택하고 있습니다. 간단한 사용법을 알아봤습니다. 1. DB 생성 먼저 데이터를 다루는데 있어 가장 큰 단위인 DB를 생성하기 위해서는 CREATE 명령어를 사용합니다. CREATE DATABSE CHARACTER SET utf8 COLLATE utf8_general_ci; 기본적으로 MySQL은 서버 *CHARACTER SET이 latin1로 설정되어 있습니다. 이는 인코딩(데이터 부호화)시에 DB에 저장된 한글이 깨지거나 프로그램에 문제가 발생할 수가 있기때문에 utf8로 설정하는 것이 일반적인 경우입니다. *CHARACTER SET : 사용하는 언어를 표현하기 위한 문자들의 집합을 의미합니다. 1.1 ..

Skills/DB 2022.06.30

Java - DFS 구현

1. DFS DFS(Depth-first Search)을 직역하면 깊이 우선 탐색이라는 뜻으로, 연결된 노드를 따라 방문을 한 뒤에 더 이상 연결된 노드가 없을 때 이전 노드로 돌아가서, 이전 노드에 연결된 노드를 따라 탐색하는 법입니다. 위의 사진에서 1번 노드부터 탐색을 한다고 해보겠습니다. 오름차순으로 방문한다는 가정하에 1 -> 2 -> 6 순으로 진행됩니다. 6과 연결된 노드가 없기 때문에 다시 2번 노드로 돌아가 8번 노드를 방문하게 됩니다. 8번 노드와 인접한 노드는 모두 방문을 끝냈기 때문에 최상위 노드(1번)으로 돌아가 3번 노드부터 시작하여 마찬가지로 오름차순으로 진행하여 3번 노드부터 이어진 노드를 방문합니다. 위의 과정을 거치고나면 1 -> 2 -> 6 -> 8 -> 3 -> 5->..

프레임워크 & 라이브러리

우리가 치킨 집을 창업한다고 생각해보겠습니다. 닭, 소스를 사고 만들어보고 맛이 없으면 버리고 다시 새로 만들어봅니다. 치킨 집의 이름을 정하고 메뉴판도 만들고 매장을 차려야 장사를 시작할 수 있을 것입니다. 그런데 우리가 창업을 할 때는 자기 이름으로 차리는 경우는 드물고 프렌차이즈로 간판을 빌립니다. 여기서 BHX, BBX 등 브랜드가 프레임워크라고 생각하면 됩니다. 1. Framework 뼈대를 뜻하는 프레임워크는 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 제공하는 것을 말합니다. 애플리케이션 개발 시, 필수적인 코드 및 알고리즘, DB 연동과 같은 기능들을 위해 어느정도 뼈대를 제공하며, 사용자는 이러한 뼈대(프레임)에서 애플리케이션을 개발합니다. 앱 구동, 메모리..

Java - replace,replaceall (feat. 정규표현식)

Java에서는 어떤 패턴에 대해 일치하는 부분의 일부나 모든 부분을 교체하는 메서드인 replace()와 replaceAll()을 지원합니다. 둘의 차이점을 한번 살펴보겠습니다. 1. replace() replace() 메서드는 어떤 패턴에 일치하는 일부나 모든 부분을 교체하여 새로운 "문자열"을 반환하는 메서드입니다. 형식을 살펴보자면 String replace(CharSequence target, CharSequence replacement) 첫 인자는 변환하고자 하는 문자열, 두 번째 인자는 변환하고자 하는 대상으로 위와 같습니다. 예시를 살펴보자면 String str1 = 'aabb'; System.out.println("result :"+str1.reaplce("aa","b"); // 출력 : ..

Skills/Java 2022.06.21

Java - char, String 차이

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 위의 알고리즘을 풀다가 char와 String의 차이가 헷갈려서 작성했습니다. 결론부터 말하자면 글자수 제한과 내용물의 차이라고 볼 수 있습니다. 1. 차이점 먼저 char의 경우는 객체의 내용이 1개의 문자로 제한되는 반면, String은 제한없이 문자를 담을 수 있다는 것 입니다. 내용물의 측면에서는 char에 해당하는 변수 안에 값을 직접적으..

Skills/Java 2022.06.20

OSI 7 Layer

https://refreshment-wg.tistory.com/4 데이터 전달 원리 1. 데이터의 기술적 개념 우선 데이터의 기술적 개념부터 생각해보자. 우리가 흔히 말하는, 컴퓨터 화면을 통해 볼 수 있는 모든 데이터는 컴퓨터 밖 세상의 것들과 크게 다르지 않다. 책처럼 refreshment-wg.tistory.com 데이터 전달 원리라는 글에서 OSI 7 계층에 대해 간략히 적었는데 미흡한 부분이 있어 작성하였습니다. OSI 7 Layer(Open Systems Interconnection Reference Model)은 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층 간 상호 작동하는 방식을 정해놓은 모델입니다. OSI 7 계층이라고도 합니다. 1. 목적 이러한 OSI 모델이 ..

독서 - 넛지 똑똑한 선택을 이끄는 힘

6월의 책은 '넛지'입니다. nudge의 사전적 의미는 팔꿈치로 '슬쩍 찌르다'라는 의미인데, 책에서 말하는 넛지는 '타인의 선택을 유도하는 부드러운 개입'을 의미합니다. 이 넛지로 가장 많이 알려진 사례는 아마 남자화장실 소변기의 파리 그림인데, 파리에게 이목이 끌려 소변기 밖으로 튀지않도록 유도하게 된다는 것이죠. 소변기 밖에다 볼일을 보지말라고 직접 말하는 것보다, 파리에 집중하게하여 목적을 이뤄낸것이죠. 생각해보면 사람은 부정을 할 수 없는 존재이기 때문에 하지말라고 하는 것보다 위의 방법이 효과가 더 있겠지요. 여기서 부정이라는 건 사람이 생각을 하는데 '아무 생각도 하지말라'라고 해도 뇌는 죽기 전 까지 계속 생각을 하게 되기 때문에 사실상 불가능함을 의미합니다. 저자인 리처드 탈러가 책에서 ..

독서 2022.06.17

Spring - @ResponseBody를 이용한 데이터 반환(API)

보시기 전에, Json과 Http에 대한 글을 작성하였는데 참고하고 이 글을 보시면 도움이 될 것 같습니다. https://refreshment-wg.tistory.com/50 Json & XML 1. Json Json(JavaScript Object Notation)라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 데이터 교환 방식입니다. JS에서 객체를 만들 때 사용하는 표현식을 의미하기도 하며, refreshment-wg.tistory.com https://refreshment-wg.tistory.com/9?category=1005918 HTTP란? 1. HTTP? 저희가 주소창에서 볼 수 있는 HTTP(HyperText Transfer Protocol)는 텍스트 기반의 통신..

Skills/Spring 2022.06.08

Getter, Setter 메서드

객체지향 프로그래밍에서 객체의 Data는 객체 외부에서 직접적으로 접근하는 것을 막습니다. 객체 데이터를 외부에서 읽고 변경하게 되면 객체의 무결성이 훼손되기 때문입니다. 그래서 객체지향 프로그래밍에서는 메서드를 통해 데이터를 변경하는 것을 선호합니다. Data는 외부에서 접근하지 못하도록 하고 메서드는 공개하여, 메서드를 통해 Data에 접근하도록 유도하여 필드 값에 부적절한 값을 대입되는 것을 막기 위해 사용합니다. 자바에서는 인스턴스 변수를 반환하는 Getter와 인스턴스 변수를 대입하거나 수정하는 Setter를 사용합니다. 1. 예시 package gettersetter; public class Student { // 은닉된 멤버 변수 private String Name; private int ..

Skills/Java 2022.06.08

Java - interface 1

1. Interface? 먼저 인터페이스는 동일한 목적 하에 동일 기능을 수행하게끔 강제하는 것이 인터페이스의 역할이자 개념입니다. 뭐 예를 들어서, 대학에서 교수님이 학생들에게 객체지향 프로그래밍을 설명하는 과제를 작성하라는 과제를 냈다고 가정해봅시다. 여기서 A라는 학생은 PPT로 작성을 하여 메일로 보냈고, B라는 학생은 word파일로 작성을 해서 학교 홈페이지에 올렸습니다. 여기서 문제는 무엇일까요? 교수님이 특정한 규격을 정해주지 않아 결과물이 제각각이라는 것입니다. 교수가 학교 홈페이지에 ppt파일로 작성하여 11일 자정까지 제출하라고 지시한다면 해결이 되겠죠. 위의 예시에서는 ppt파일로 작성하라는 것이 인터페이스가 되겠지요. 이처럼 동일 목적 하에 동일 기능을 보장하게 하는 것이 인터페이..

Skills/Java 2022.06.07