memostack
article thumbnail
MAC OS 재설치하기 (맥북 포맷)
DevOps/MacOSX 2020. 6. 13. 12:45

포맷을 진행할 맥북의 정보구매일: 2019.04 맥북 포맷하기순서는 포맷을 한뒤에 OS를 다시 설치한다. 1. 'MacOS 복구 모드'를 실행 (맥북을 키면서 Command + R 을 누른다) 2. 디스크 유틸리티를 들어간다. 3. 지우려는 디스크를 선택하고 '지우기'를 누른다. 3.1. 이름: 원하는 이름으로 디스크명을 바꿔준다. (옵션)3.2. 포맷: APFS 또는 Mac OS 저널링(확장)을 선택 4. 데이터도 3번과 동일하게 작업 5. 완료 후 디스크 유틸리티를 종료한다. 6. Mac OS를 다시 설치한다. 7. 설치 후 기본 세팅 및 설정을 해준다. 8. 사용한다. 참고https://support.apple.com/ko-kr/HT208496Mac의 디스크를 지우는 방법디스크 유틸리티를 사용하여 ..

article thumbnail
리액트 시작 - 왜 리액트인가?
Frontend/React 2020. 6. 11. 21:33

서론 자바 스크립트 자바스크립트는 한때 웹 브라우저에서 간단한 연산을 하거나 시각적인 효과를 보여주기 위한 용도로 씀. 현재는 웹 애플리케이션에서 가장 핵심적인 역할을 함. 더 나아가 서버 사이드, 모바일, 데스크 톱 애플리케이션에서도 사용함. 자바스크립트 기반 프레임워크 자바스크립트만으로 대규모 프로젝트를 진행할 수 있게 됨. 하지만, 순수 자바스크립트로는 어려움이 있음. 대규모 프로젝트를 어떻게 관리할까? AngularJS, Backbone.js, Derby.js, Ember.js, Ext.js, Knockback.js, Sammy.js, PureMVC, Vue.js ... 위 프레임워크들은 아래와 같은 방법으로 구조화를 함 MVC: Model View Controller MVVM: Model Vie..

article thumbnail
Design Pattern - Factory Method Pattern (팩토리 메소드 패턴)
Study/Design Pattern 2020. 6. 7. 22:38

Factory Method Pattern 팩토리 메소드 패턴은 '객체'와 '객체 생성 클래스'를 따로 분리하는 디자인 패턴이다. 객체 생성 클래스가 따로 분리되어 있어서, 객체 생성 변화에 유연하게 대비할 수 있다. 팩토리 메소드 패턴을 이용하기 위해서는 Strategy Pattern과 Template Pattern의 개념을 아는 것이 좋다. (자주 사용됨) 예제 요구사항 게임 아이템을 만드는 아이템 생성자를 만든다. 아이템의 정보는 DB에 있다. 아이템 불법 생성을 막기 위해, 아이템 생성 로그를 남긴다. 아이템을 상속받아 여러개의 세부 아이템(물약, 검, 갑옷 등등)을 구현한다. 아이템 생성자 public abstract class ItemCreator { public Item create() { /..

article thumbnail
Design Pattern - Template Method Pattern (템플릿 메소드 패턴)
Study/Design Pattern 2020. 6. 7. 20:16

Template Method Pattern 템플릿 메소드 패턴은 일정한 구조의 프로세스를 가진 경우, 사용하기 좋은 디자인 패턴 코드의 중복을 줄일 수 있고 유지보수하기에도 편리함. 일정한 구조의 프로세스? 특정 알고리즘이 A -> B -> C 와 같이 항상 A 작업을 수행하고, B작업, C작업을 수행한다면, 각 작업들을 메소드로 구현한다. A -> B -> C 순으로 실행되도록 실행 메소드를 구현한다. (아래 수도코드 참고) func doA: // A 로직 수행 func doB: // B 로직 수행 func doC: // C 로직 수행 func doSomething: doA doB doC 예제 요구사항 계정 로그인을 한다. 로그인의 동작 순서는 아래와 같다. 사용자의 아이디, 비밀번호 복호화 유효한 아..

article thumbnail
[공유] 클래스 다이어그램 그리기 좋은 웹 서비스
ETC 2020. 6. 7. 17:52

클래스 다이어그램, Flow chart 와 같이 문서 작성에 도움을 주는 그래프를 그려주는 사이트 https://app.diagrams.net/ Flowchart Maker & Online Diagram Software Flowchart Maker and Online Diagram Software diagrams.net (formerly draw.io) is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPM app.diagrams.net

article thumbnail
Design Pattern - Strategy Pattern (스트래티지 패턴)
Study/Design Pattern 2020. 6. 7. 17:21

스트래티지 패턴 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴 행위(Behavior)들을 캡슐화하여 동적으로 자유롭게 바꿀 수 있는 패턴 예제 요구사항 게임 케릭터와 무기를 생성하여, 케릭터가 무기를 쥘 수 있음. 무기의 종류 칼 (Sword) 총 (Gun) 무기의 행위 공격 (Attack) 케릭터가 들고 있는 무기는 변경이 자유롭게 가능해야 함. 무기 만들기 public interface Weapon { void attack(); } 무기(Weapon)라는 인터페이스를 생성. (자세한 내용은 implements하여 구현) 무기로 공격(attack)을 할 수 있으므로, attack()이라는 메소드를 생성 public class Knife implements Weapon { @Override public..

article thumbnail
시간 복잡도 (빅오, 빅오메가, 빅세타)
Algorithm 2020. 6. 3. 22:52

시간 복잡도란? 시간 복잡도는 특정 알고리즘이 얼마나 빠르게 수행이되는지 표현하기 위해 사용된다. 즉, 시간복잡도는 쉽게 말해서 알고리즘의 실행 시간을 말한다. 시간 복잡도의 종류 빅오 (big-O) 표기법 시간의 상한 (최악의 경우) 해당 알고리즘은 big-O 보다 더 오래 걸릴 수 없다. 빅오메가 (big-Omega) 표기법 시간의 하한 (최선의 경우) 해당 알고리즘은 big-Omega 보다 더 빠를 수 없다. 빅세타 (big-theta) 표기법 평균적인 경우, 딱 맞는 수행 시간 big-O 와 big-Omega 를 하나로 합쳐 표현한것과 같다. 예를들어, 수행시간이 빅오가 N, 빅오메가가 N 이라면, 빅세타도 N 이다. (아래 그림 참조) 가장 많이 쓰이는 표기법 보통은 빅오와 빅세타를 많이 사용하..

article thumbnail
리팩토링(Refactoring)에 대해서
ETC 2020. 6. 3. 19:35

리펙토링이란? 리펙토링은 기존의 코드를 외부의 동작 방식에는 변화 없이 내부 구조를 변경해서 재구성하는 작업 또는 기술을 말한다. 리펙토링을 통해 얻을 수 있는 이점 코드를 이해하기 편해짐 변화에 효율적으로 대응할 수 있음 생산성이 높아짐 코드의 품질이 좋아짐 유지 보수하기 편함 Example (적절한 예인지 모르겠으나, 한가지 예를 만들어봤다) 예를들어서, 정보를 담고 있는 A.txt, B.txt 파일 2개를 만들고, text_dir 라는 특정 디렉토리에 복사하는 프로그램을 작성했다. import os import shutil dir_path = "~/text_dir" # A.txt a_file_path = "~/A.txt" with open(a_file_path, "w") as f: f.write("..

article thumbnail
Java 의 주석 (한 줄 주석, 여러줄 주석, 문서 주석)
Language/JAVA 2020. 5. 29. 14:59

자바의 주석 주석은 코드에 영향을 미치지 않는 코드를 말한다. (즉, 컴파일러가 컴파일하지 않고 무시하고 넘어감) Java의 주석에는 3종류가 있다. 한 줄 주석 // 를 이용한다. public class HelloWorld { public static void main(String[] args) { String comment = "Hello, Java!"; // 이건 한줄 주석 } } 여러 줄 주석 /* */ 를 이용한다. public class HelloWorld { public static void main(String[] args) { /* 이건 여러줄 주석 String greet = "Hello, World!"; System.out.println(greet); System.out.println(..

article thumbnail
자바(JAVA)의 개념 및 특징 정리
Language/JAVA 2020. 5. 29. 14:45

프로그래밍이란? 프로그래밍: 컴퓨터에게 일을 시키기 위해 프로그램을 만드는 행위 컴파일: 사람이 이해할 수 있는 고급 언어를 컴퓨터가 이해할 수 있는 기계어로 바꿔주는 일을 뜻 함 컴파일러: 컴파일을 할 수 있는 프로그램 자바의 탄생 1995년 썬 마이크로시스템즈에서 개발한 객체지향 언어 C/C++ 문법을 기본으로하여 개발함 JAVA의 특징 플랫폼에 독립적이다. 컴파일된 동일한 코드는 JVM만 설치되어 있다면, 운영체제에 상관없이 실행할 수 있다 객체지향 프로그램으로 유지보수와 확장성이 좋다. 풍부한 라이브러리가 제공되어 오픈소스와 연동이 쉽다. JVM의 GC(Garbage Collector)에 의해 사용되지 않는 메모리를 자동으로 정리해준다.