Old Posts

Old Posts/OOP

00. 알고리즘 문제로 OOP 이해하기.md

README 자바로 문제 풀면서 OOP 정복 가즈아! 안녕하세요. 컴퓨터공학과 학생입니다. 저는 2018년 1월부터 Java로 백준 알고리즘 문제를 풀어왔는데 절차지향적인 사고방식으로 코드를 짜왔습니다. 알고리즘 문제를 풀다보면 절차지향으로 짜도 별 문제가 없었죠 ? (오히려 더 빠릅니다.) 허나, 몇 달이 지나서 문제의 Output이 바뀌어 내 코드를 수정해야 한다면 어떨까요 ? 객체지향프로그래밍(OOP)에 대해 공부하던 중에 어떻게하면 몸소 느낄 수 있을까 생각하다가 이왕 알고리즘 문제 푸는거 객체지향적인 코드로 짜보자 하는 생각이 들었습니다. 어떻게 하면 객체지향스럽게 적용할 지 고민하며 제 나름대로 코드를 짜보고 기록하여 올리는 공간입니다. 저와 같이 알고리즘 문제를 객체지향적으로 구현 하고 싶은..

Old Posts/Effecttive Java

Item06. 유효기간이 지난 객체 참조는 폐기하라

README Item 06 : 유효기간이 지난 객체 참조는 폐기하라 (Eliminate obsolete object references) 메모리 누수(Memory Leak) 방지하기 자체적을 메모리를 관리하는 클래스 캐시 (Cache) 리스너 (listener) 유효기간이 지난 객체 참조를 폐기하여 메모리 누수(memory Leak) 을 방지하자! 1. 자체적을 메모리를 관리하는 클래스를 만들 때는 메모리 누수(Memory Leak)가 발생하지 않도록 해야한다. 더 이상 사용되지 않는 원소 안에있는 객체 참조는 null로 바꾸자 Stack.class public synchronized E pop() { E obj; int len = size(); obj = peek(); removeElementAt(le..

Old Posts/Semina

제 2회 네이버 오픈소스 세미나 Q&A

QnA 연사들과의 자유 Q & A 안녕하세요. 2018년 2월 23일 그린팩토리에서 열렸던 제2회 네이버 오픈소스 세미나를 다녀왔습니다. 이번 세미나에서 박은정 님이 사회를 맡아주시고 권민재 님, 김희재 님, 변정훈 님이 연설을 맡아 주셨는데요. 연사들과의 자유 Q&A 시간에 기대 이상으로 피와 살이 되는 내용이 많아서 많은 분들에게 공유하고자 글을 남깁니다. 질문과 답변들을 메모해뒀다가 정리 해보았습니다. 문장이 깔끔하지 못한 부분도 있을거고 읽으시다가 이해가 안되는 부분도 있을거라 생각됩니다. 무엇보다 제가 올린 것들이 연사분들에게 누가 되지 않았으면 좋겠습니다. 관련용어를 제가 잘못 이해 했을 수도 있고 말씀하신 부분을 제가 잘못 적을 수 있다는 점 유의해서 봐주시면 감사하겠습니다. Question..

Old Posts/Effecttive Java

Item05. 불필요한 객체는 만들지 말라

README Item 05 : 불필요한 객체는 만들지 말라 (Avoid creating unnecessary objects) 불필요한 객체 만들지 않는법 String static factory method static initializer Wrapper class 1. String String s1 = new String("ABC"); String s2 = new String("ABC"); System.out.println(s2 == s1); //false(참조값 다름) s1, s2에서 각각 객체생성을 했으므로 힙영역에 객체 2개가 생성이 된다. String.class는 불변 클래스(immutable class)라서 같은 문자열을 다른 객체로 만들 이유가 없다. 객체 하나를 생성하고 같은 참조값을 가지면..

Old Posts/Effecttive Java

Item04. 객체 생성을 막을 때는 private 생성자를 사용하라 <이펙티브자바>

README Item 04 : 객체 생성을 막을 때는 private 생성자를 사용하라 (Enforce noninstantiability with a private constructor) 객체 생성을 막는 것에는 어떤것들이 있을까? java.lang.Math java.util.Arrays java.util.Collections (위 클래스들은 객체를 만들 목적의 클래스가 아니다.) 1. java.lang.Math public final class Math { /** * Don't let anyone instantiate this class. */ private Math() {} public static final double PI = 3.14159265358979323846; public static in..

Old Posts/Database

트랜잭션 4가지 특징 (ACID)

Transaction_4_Principle 트랜잭션 4가지 특징 ACID ? ㅇㅇ 이번 설날에 대학교 동아리 졸업하신 형들이랑 학교근처에서 술자리를 가졌다. 형들중 한명이 나에게 트랜잭션 4가지 특징을 물었다. 아토믹.... 이라고밖에 답을못했다. DB 수업때 교수님이 은행 거래할때 아토믹해야한다~ 이거밖에 떠오르지 않았다. 보면알거같은데... ㅠㅠ.. 안떠오른다! 그래서 이번에 트랜잭션 ACID 특징을 내 머리 깊숙히 박아놓고자 한다. 트랜잭션 ? 영어 낱말 transaction은 거래를 뜻한다. 예를 들어 돈을 줬는데 물건을 받지 못한다면, 그 거래는 이루어지지 못하고 원상태로 복구되어야 한다. 쪼갤 수 없는 하나의 처리 행위를 원자적 행위라고 한다. 여기서 쪼갤 수 없다는 말의 의미는 실제로 쪼갤 ..

Old Posts/Effecttive Java

Item03. 싱글톤을 쓸 때 property는 private 생성자나 enum타입으로 하라 <이펙티브자바>

README Item 03 : 싱글톤을 쓸때 property는 private 생성자나 enum타입으로 하라 (Enforce the singleton property with a private constructor or an enum type) 싱글톤 만드는법 using public final field using static Factory using Enum (결론: 1번 쓰지마라) 1. Using public final field public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis(){...} public void leaveTheBuilding(){...} } 문제점 reflection으로 private..

Old Posts/Effecttive Java

Item02. 생성자 인자가 많을 때는 Builder패턴 적용을 고려하라 <이펙티브자바>

README Item 02 : 생성자 인자가 많을 때는 Builder패턴 적용을 고려하라 (Consider a builder when faced with many constructor parameters) 아래에서 소개될 패턴들 Telescoping constructor pattern JavaBeans Pattern Builder Pattern (결론: Builder Pattern 을 써라.) 1. Telescoping constructor pattern public class NutritionFacts { private final int servingSize; // (mL) required private final int servings; // (per container) required private..

bactoria
'Old Posts' 카테고리의 글 목록 (4 Page)