Time tracker
๊ตฌ๋ถ | ๋ชฉํ์๊ฐ | ์ฌ์ฉ์๊ฐ | ๋ฌ์ฑ๋ฅ % | ์์ธ๋ถ์ | ๋ค์ ์ฃผ์ ์ ์ฉํ ๊ฒ |
---|---|---|---|---|---|
๐งโโ๏ธ์์ | 11 | 10.5 | 95 | 1์ผ 1ํ ๋ฃ๊ธฐ๋ง ํ๊ณ ๋ณธ๊นจ์ ์ ํจ why ๋๋ฌด ๊ท์ฐฎ๊ณ ๋ถ๋ด์ค๋ฌ์์ | ๊ฑฐ์ฐฝํ๊ฒ ํ๋ คํ์ง ๋ง๊ณ ๋ฑ 1์ค์ฉ๋ง ์ ๊ธฐ ๊นจ๋ฌ์๊ฑด&๋ณธ๊ฒ 1๊ฐ, ์ ์ฉํ ์ 1๊ฐ |
โ๏ธ์ง์ | 74 | 61.5 | 83 | ๋ธ๋ก๊ทธ ๋ง๋๋๋ผ -12h | |
์ฌํ์ | 3 | 15 | 500 | ์ ๋
์ฝ์ : 3h ๋ธ๋ก๊ทธ : 12h ๋ธ๋ก๊ทธ ์ธ์ ๊ฐ ๋ง๋ค์ด์ผ ๋๋ ๊ฑฐ๊ธดํ๋๋ฐ ์ฐ์ ์์ ๋ฌด์ํ๊ณ ๋ด๊ฐ ํ๊ณ ์ถ์ ๊ฒ๋ง ์ฐ์ง๋ ์ฌ์ค ๊ณต๋ถํ๊ธฐ ์ซ์ด์ ํํผ์ฉ์ผ๋ก ํ ๊ฒ๋ ์์ (ใ ใ ) | ์ฐ์ ์์ ๊ฐ๋ ํญ์ ์๊ธฐ์ํค๊ธฐ ๋ด์ฃผ ์๊ฐ๊ธฐ๋ก ํ์ด์ง์ ์ ์ด๋์ผ๊ฒ ๋ค |
๐โโ๏ธ์ ์ฒด์ | 3.5 | 1 | 29 | ์ด๋ฒ ์ฃผ๋ ์ง ์์ ์ด๊ฒ์ ๊ฒ ํ๋๋ผ(๋น๊ทผ ๊ฑฐ๋, ์ฒญ์, ๊ฐ์ ๋จน๊ธฐ ใ ..) ์๊ฐ ์๋ค๊ณ ์ ํ๋ค | 30๋ถ โ 10๋ถ์ผ๋ก ์ค์ด๊ธฐ ์์ ์ ํ๋ ๊ฒ๋ณด๋จ ๋์!!! ์๋๋ผ๋ ๊พธ์คํ ํ๋ ๊ฒ ์๋ฏธ์๋ฐ |
๐์ | 49 | 49 | 100 | ์์ 10๋ถ 20๋ถ์ฉ ๋ฆ๊ฒ ์๋๊ฒ ์ด๊ฒ ์กฐ๊ธ์ฉ ์์ด๋๊น ์ ์ ํผ๊ณคํด์ง๋ค. freedom ๋๋ฉ์ธ ์ฐจ๋จ,, ํ์ธ.. | 49์๊ฐ ์ ์ง |
๐งน๊ธฐํ | 24 | 29 | 121 |
์๊ฐ๊ธฐ๋ก

Weekly Feedback
์ด๋ฒ ์ฃผ ๋ชฉํ | ์ด๋ฒ ์ฃผ ๊ฒฐ๊ณผ |
---|---|
<์๋ฐ์ ์ ์ 7~11์ฑํฐ ๋๋ด๊ธฐ> 1. 10์ฅ ์ฐ์ต๋ฌธ์ ํ๊ธฐ 2. 11์ฅ ์ปฌ๋ ์ ํ๋ ์์ํฌ 3. 12์ฅ ์ง๋ค๋ฆญ์ค, ์ด๊ฑฐํ, ์ ๋ํ ์ด์ 4. 13์ฅ ์ฐ๋ ๋(Thread) 5. 14์ฅ ๋๋ค์ ์คํธ๋ฆผ | ๋ฌ์ฑ๋ฅ : 70% 1. 10์ฅ ์ฐ์ต๋ฌธ์ ํ๊ธฐ 2. 11์ฅ ์ปฌ๋ ์ ํ๋ ์์ํฌ 3. 12์ฅ ์ง๋ค๋ฆญ์ค, ์ด๊ฑฐํ, ์ ๋ํ ์ด์ |
์์ธ ๋ถ์
- ๋ธ๋ก๊ทธ ๋ง๋๋๋ผ 12h ๋ชป ์ผ๋ค. ๊ทธ๋๋ 14์ฅ์ ๋ชป ๋๋์ ๋ฏ ์ ์ ํ ์์ค์ ๋ชฉํ๋ฅผ ์ธ์ฐ๋ ๊ฒ ์ฐธ ์ด๋ ค์ด ๊ฒ ๊ฐ๋ค.
์์์น ๋ชปํ ์ฑ๊ณต๊ณผ ์คํจ
์์ฑ
- ์ ๋ฒ ์ฃผ์ ํ๋ MyVector ๊ตฌํ์ ์ด๋ฒ ์ฃผ ๊ณผ์ ๋ก ๋ด์ฃผ์
์ ํ ๋ฒ๋ ํด๋ดค๋ค. ์ ๋ฒ ์ฃผ์ ๊ฐ์ด ๋ณด๊ณ ๋ฐ๋ผ์น๊ธฐ๋ง ํ๋ ๊ฒ ์๋๋ผ ์๊ตฌ์ฌํญ์ ๋ณด๊ณ ๋ด๊ฐ ์ง์ ๊ตฌํํ๋ ๊ฑฐ๋ผ ๋ ๊ธฐ์ต์ ์ ๋จ๊ณ ์ดํด๋๋ ๋ฌ๋๋ค.
๊ทธ๋ฅ ์๊ตฌ์ฌํญ๋ง ๋ดค์ ๋๋ ๊ฐ๋จํด๋ณด์๋๋ฐ ์๊ฐ๋ณด๋ค ๊ณ ๋ คํ ์์๋ค์ด ๋ง์๋ค. null๊ฐ์ด ๋ค์ด์จ๋ค๋์ง remove ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํ ๋๋ ๋ฐฐ์ด ๋ณต์ฌ๋ฅผ ํ์ง ์๋๋ค๋์ง ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ๋ ๋ฐฐ์ด์ capacity๊ฐ ๋ค ์ฐผ๋์ง ํญ์ ์ฒดํฌํด์ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํด์ ๋ณต์ฌํด ๋ฐํํด์ค์ผ ํ๋ ๊ฒ, ๋ฐฐ์ด ๋ณต์ฌํ ๋๋ for๋ฌธ์ด ์๋๋ผ System.arraycopy(์๋๊ฐ ๋ ๋น ๋ฆ)๋ฅผ ์จ์ผ ํ๋ค๋ ๊ฒ ๋ฑ๋ฑ..
๋ฐฐ์ด์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ๋ ์ ์ดํดํ๊ฒ ๋ ๊ฒ ๊ฐ๊ณ ์ฌ๋ฐ์๋ค. 16์ฅ๊น์ง ๋๋ด๋ฉด linkedList๋ HashMap, TreeSet๋ ์ง์ ๊ตฌํํด๋ณด๊ธฐ!
MyVector
package ch12; import java.util.ArrayList; import java.util.Arrays; public class MyVector { private Object[] objArr; private static final int DEFAULT_CAPACITY = 16; private int capacity; // ์ฉ๋ private int size; // ๊ฐ์ฒด์ ๊ฐ์ MyVector() { this(DEFAULT_CAPACITY); } MyVector(int capacity) { this.capacity = capacity; objArr = new Object[capacity]; } // ๊ฐ์ฒด์ ๊ฐ์ ๋ฐํ public int size() { return size; } public int capacity() { return capacity; } // ๊ฐ์ฒด ๋ฐฐ์ด์ด ๋น์๋์ง ํ์ธํ๋ค public boolean isEmpty() { return capacity < 1; } /** * ๊ธฐ๋ฅ : ๊ฐ์ฒด๋ฐฐ์ด objArr์ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ๋ ๋ฉ์๋ * ๋ฉ์๋๋ช : add * ๋ฐํํ์ : void * ๋งค๊ฐ๋ณ์ : Object obj */ public void add(Object obj) { // objArr ์ฉ๋์ด ๋ค ์ฐจ์ง ์์์ ๋๋ง ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ ์ ์๋ค. if (objArr.length == size) { objArr = grow(); // // ์ฉ๋์ ๋๋ฆฐ๋ค.(+16) } objArr[size++] = obj; } /** * ๊ธฐ๋ฅ : ๋ฐฐ์ด์ด ๋ค ์ฐผ์ ๊ฒฝ์ฐ DEFAULT_CAPACIT Y(16)๋งํผ ๊ธธ์ด๋ฅผ ๋๋ฆฐ ๋ฐฐ์ด์ ๋ฐํํด์ค๋ค. * ๋ฉ์๋๋ช : grow() * ๋ฐํํ์ : Object[] * ๋งค๊ฐ๋ณ์ : ์์ */ public Object[] grow() { /** * 1. ํ์ฌ ๋ฐฐ์ด์ capacity๋ณด๋ค + DEFAULT_CAPACITY(16)ํ Object ๋ฐฐ์ด tmp๋ฅผ ์์ฑํ๋ค. * 2. objArr์ ๋ด์ฉ์ tmp์ ๋ณต์ฌํ๋ค. * 3. tmp์ ์ฃผ์๊ฐ์ ๋ฐํํ๋ค. */ capacity = size + DEFAULT_CAPACITY; Object[] tmp = new Object[capacity]; System.arraycopy(objArr, 0, tmp, 0, size); return tmp; } /** * ๊ฐ์ฒด๋ฐฐ์ด objArr์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ Object get(index)๋ฅผ ์์ฑ */ public Object get(int index) { // index๊ฐ ์ ํจํ ๊ฐ์ด์ด์ผ ํ๋ค. // index๊ฐ 0๋ณด๋ค ์๊ฑฐ๋ size๋ ๊ฐ๊ฑฐ๋ ํด ๊ฒฝ์ฐ // 0 <= index < size if (!(0 <= index && index < size)) throw new IndexOutOfBoundsException("์ ํจํ ๊ฐ์ด ์๋๋๋ค."); return objArr[index]; } /** * ๊ธฐ๋ฅ : ๊ฐ์ฒด ๋ฐฐ์ด objArr์์ ์ง์ ๋ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋์ด ์๋ ์์น(index)๋ฅผ ๋ฐํํ๋ int indexOf(Object obj)๋ฅผ ์์ฑํ์์ค. * ex) "๊ฐ", "๋", "๋ค"๋ฅผ ์ ๋ ฅํ์ผ๋ฉด "๋"๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฒฝ์ฐ 1์ ๋ฐํํด์ค์ผํจ * ๋ฉ์๋๋ช : indexOf * ๋งค๊ฐ๋ณ์ : Object obj * ๋ฐํํ์ : int */ public int indexOf(Object obj) { /** * ๊ฐ์ฒด ๋ฐฐ์ด objArr์์ obj๋ฅผ ์ฐพ์์ผ ํ๋ค. * objArr ๊ธธ์ด๋งํผ์ ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ objArr[i]์ obj๊ฐ ๊ฐ์ ๊ฐ์ ์ฐพ์์ผ ํจ */ for (int i = 0; i < size; i++) { if (obj == null) { if (objArr[i] == null) return i; } else { if (obj.equals(objArr[i])) return i; // objArr[i]์ equals๋ฅผ ํธ์ถํ๋ ๊ฑฐ์ ๋ค์ด๊ฐ์๋ ๊ฐ์ด ์ ์๋ฉด Integer.equals } } return -1; } /** * ๊ธฐ๋ฅ : ๊ฐ์ฒด๋ฐฐ์ด objArr์์ ์ง์ ๋ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ boolean remove(Object obj)๋ฅผ ์์ฑํ์์ค.(indexOf()๋ฅผ ์ด์ฉํ ๊ฒ) * +) ๋ง์ฝ ์ญ์ ํ๋ ค๋ ๋ฐ์ดํฐ๊ฐ * ๋ฉ์๋๋ช : remove * ๋งค๊ฐ๋ณ์ : Object obj * ๋ฐํํ์ : boolean */ public Object remove(Object obj) { int idx = indexOf(obj); if (idx != size - 1) { System.arraycopy(objArr, idx + 1, objArr, idx, size - idx - 1); } objArr[size - 1] = null; // ๋ง์ฝ์ size๊ฐ 5์์ 4๋ก ๋ณ๊ฒฝ์ด ๋์๋๋ฐ,, size--; return objArr[idx]; } @Override public String toString() { return "objArr=" + Arrays.toString(objArr) + ", capacity=" + capacity + ", size=" + size; } public static void main(String[] args) { ArrayList test2 = new ArrayList(); test2.add(null); test2.add(3); System.out.println("test2.indexOf(3) = " + test2.indexOf(3)); MyVector test = new MyVector(1); test.add(null); test.add(3); System.out.println("test.indexOf(3) = " + test.indexOf(3)); System.out.println("test.indexOf(null) = " + test.indexOf(null)); } }
- vim
๋ด๊ฐ ๊ทนํ์ ํจ์จ์ ์ถ๊ตฌํ๋ ์ฌ๋์ธ ๊ฑธ ์ด๋ป๊ฒ ์์๊ณ ์ ์๋๊ป์ vim ์จ๋ณด๋ฉด ์ข์ํ ๊ฒ ๊ฐ๋ค๊ณ ์๋ ค์ฃผ์ จ๋ค ใ ใ vim์ ์กด์ฌ๋ ์๊ณ ์์์ง๋ง ๋ฑํ ์จ๋ณผ ์๊ฐ์ ๋ค์ง ์์์๋๋ฐ ์จ๋ณด๋ ์์ ์ ์ธ๊ณ์..!
- ํค ์กฐํฉํด์ ์ธ ์ ์๋ ๊ฒ
- ํ์ฌ ์ฌ์ฉ ์ค์ธ ํค๋ณด๋ ์ ์๋ ์ด๋ ํค์์์ ์ด๋ํ ๋๋ง๋ค ๋ถํธํ์๋๋ฐ hjkl๋ก ๋์ฒดํ ์ ์์ด์ ๋๋ฌด ์ข๋ค
- ์์ด ๋ง์ฐ์ค๋ก ๊ฐ์ง ์์์ ํ๋ฆ์ด ๋๊ธฐ์ง ์์
์ง๊ธ์ ์ ์ ๋จ๊ณ๋ผ ๋๋ฑ๋์ง๋ง ์ต์ํด์ง๋ฉด ์์ฐ์ฑ ์ฅ๋ ์๋ ๊ฒ ๊ฐ๋ค
- CS ์ฐ์ ์์
CS ์ง์ ๋ถ์กฑํ๊ฒ ์ปดํ๋ ์ค์๋๋ฐ,, ๋ํํ ์ ๋ง ํ์ํ๋ ๊ณต๋ถ ์ฐ์ ์์์ ๋ํด ์๋ ค์ฃผ์ จ๋ค.
- ์๋ฃ๊ตฌ์กฐ : ํฌ์ ๋๋น ์์ํ์ด ์ ์ผ ์ข๊ณ ์ฐ์ ์์ ๋์. ๊พธ์คํ ํํํ ๋ด์ผ ํ๋ค. ์๋ฐ์ ์ ์ 11์ฅ์ด ์๋ฃ๊ตฌ์กฐ์ ๊ธฐ์ด๊ฐ๋จ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋คํธ์ํฌ
- ์ด์์ฒด์ : ์์ ์์ค์ผ๋ก๋ง ๋ณด๋ฉด๋๊ณ ๋๋ฌด ๊น๊ฒ ๋ณด๋ฉด ์๋จ, ์ฅ๊ธฐ์ ์ผ๋ก ์กฐ๊ธ์ฉ ๋ณด๊ธฐ
๊ธ์ฃผ์ ๋ฐฐ์ด ๊ฒ๋ค
Object ํด๋์ค์ ๋ฉ์๋๊ฐ iv๋ฅผ ์ฌ์ฉํ์ง ์๋๋ฐ static ๋ฉ์๋๊ฐ ์๋ ์ด์
- ์์๋ค์ด ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ
- equals ๊ฐ์ ๊ฒฝ์ฐ๋ ์ฐธ์กฐ๋ณ์ this(iv)๋ฅผ ์ฌ์ฉํจ
๋ฉ๋ชจ๋ฆฌ์ ์ญํ
์ ์ฅ๊ณต๊ฐ โ ๊ฐ์ ์ฝ๊ณ ์ฐ๊ธฐ ์ํ ๊ณต๊ฐ
์์ ์ ํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ค ์ฐจ๋ฉด ์์ ์ด ๋ถ๊ฐ๋ฅํ๋ค.
๋ฉ๋ชจ๋ฆฌ๋ ๋ณ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ์ธ ์ ์๋ ๊ณต๊ฐ์
์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ์ ์ฐจ์ด
์ด๋จ ๋ ์์ด๊ณ ๋ ๊ฐ์ ์ฐจ์ด์ ์ ๋ํด์ ์ ํํ๊ฒ ์๊ณ ์์ด์ผ ํจ
- ์์ ๋ณต์ฌ : ๋ณ๊ฒฝ๋์ง ์๊ณ ๊ณต์ ํ ๋ชฉ์ ์ด๋ฉด ์์ ๋ณต์ฌ, ์ฝ๊ธฐ๋ง ํ ๋
- ๊น์ ๋ณต์ฌ : ์ฝ๊ธฐ ์ฐ๊ธฐ ํ ๋๋ ๊น์ ๋ณต์ฌ
๋ฆฌํ๋ ์ API
- ์ ๋ณด : Annotation, Field, Method ๋ฑ์ ์ ๋ณด ๊ฒ์
๋ฉ์๋๊ฐ ๋ช ๊ฐ ์ง ์๋ํ ์ด์ ์ด ๋ถ์๋์ง, ๋ฐํํ์ ์ด ๋ญ์ง ์ด๋ฐ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ค.
- ๊ฐ์ฒด ์์ฑ
- Class ๊ฐ์ฒด
class์ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋ค. ํด๋์ค ๋ก๋๊ฐ ๋ด์ฉ์ ์ฝ์ด์ ์ค๊ณ๋๋ ๊ฐ์ฒด ํํ๋ก ๋ง๋ ๋ค. why? ์๋ฐ ํ๋ก๊ทธ๋จ์์ ์ธ ์ ์๋๋ก ํ๊ธฐ ์ํด
Class carClass = CLass.forName("Car"); Car car = new Car();
๋ฆฌํ๋ ์ api๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ์ฒด ๋ณ๊ฒฝ์ด ํ์ํ ๋ ์ฝ๋๋ฅผ ๊ณ ์น์ง ์๊ณ ๊ฐ์ฒด ๋ณ๊ฒฝ์ ํ ์ ์๋ค.(๋์ ์์ฑ์ด ๊ฐ๋ฅํ๋ค.) ์ปดํ์ผ ๋ค์ ํ ํ์๋ ์์
oop๋ฅผ ํ๋ ์ด์ ๋ ๋ณ๊ฒฝ์ ์ ๋ฆฌํ๊ฒ ํ๊ธฐ ์ํด ํ๋ ๊ฒ(์ฝ๋๋ฅผ ๋ ๊ณ ์น๋ ๊ฒ) ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ํจ
์คํ๋ง์ด ์ด๋ ๊ฒ ๋ฆฌํ๋ ์ API๋ฅผ ์ด์ฉํด์ ๋ง๋ค์ด์ ธ์๋ค.
- Class ๊ฐ์ฒด
- ๋ฉ์๋ ํธ์ถ
๋ถ๋ณ
ํจ์ํ ์ธ์ด์์๋ ๋ถ๋ณ์ ๊ต์ฅํ ์ค์ํ๊ฒ ์๊ฐํ๋ค.
๋ถ๋ณ์ด๋ฉด ์์๋๊น ์๋๊ฐ ๋น ๋ฅธ ์์ ๋ณต์ฌ๋ฅผ ํ๋ฉด๋จ
์ ๊ท์
- ๊ธฐ๋ณธ์ ์ธ ๊ฒ๋ค ์ฌ์ฉ๋ง ํ ์ค ์๋ฉด ๋์ด๊ฐ๋๋จ ๊น๊ฒ ๋ณผ ํ์ X ์ฐ๋ฆฌ๊ฐ ํ์ํ ์ ๊ท์๋ค์ ์ด๋ฏธ ์ธํฐ๋ท์ ์ฐพ์ผ๋ฉด ๋ค ๋์ด
- ํฌ๋กค๋ง์ ๋ง์ด ์ฌ์ฉํ๋ค๊ณ ํจ
!
ํน์ ์ฐ์ ์ ์ญ ๋ฐ๊ณ ๊ฐ๋ ๊ฒ ์ข๋ค. ์ ๋ฌด๋ฅผ ์ ์๋ ๊ฒ์ด ๊ฒฝ์๋ ฅ์.
์ฐจ์ฃผ ๋ชฉํ
๊ตฌ๋ถ | ์ฐจ์ฃผ ๋ชฉํ |
---|---|
โ๏ธ์ง์ | <์๋ฐ์ ์ ์ 13~16์ฅ ๋๋ด๊ธฐ> 1. 13์ฅ ์ฐ๋ ๋ 2. 14์ฅ ๋๋ค์ ์คํธ๋ฆผ 3. 15์ฅ ์ ์ถ๋ ฅ(I/O) 4. 16์ฅ ๋คํธ์ํน |
๐งโโ๏ธ์์ | 1์ผ 1ํ ๋ณธ๊นจ์ ๋ ธ์ ์ ๊ธฐ๋ก(ํ์ผ 7:00~8:00) |
๐โโ๏ธ์ ์ฒด์ | ๋งค์ผ ์คํ 10:40~10:50 ํผ๋กค๋ฌ ์คํธ๋ ์นญ |
Uploaded by N2T