diff --git a/README.md b/README.md index e05218b..5be8e16 100644 --- a/README.md +++ b/README.md @@ -4,101 +4,101 @@ ### Java -- [접근 제어자의 차이점](https://github.com/2024-woowacourse-study/level-interview/discussions/8) -- [인터페이스와 추상 클래스의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/11) -- [원시값 포장과 VO의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/4) -- [static과 non-static의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/19) -- [생성자 체이닝이 무엇이고 필요한 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/22) -- [일급 컬렉션이 무엇이고 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/27) -- [Checked Exception과 Unchecked Exception의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/21) -- [String Pool이 무엇이고 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/28) -- [Stack 대신 Deque를 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/32) -- [equals와 hashCode를 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/33) -- [String, StringBuffer, StringBuilder의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/38) -- [Java 파일이 실행되는 과정](https://github.com/2024-woowacourse-study/level-interview/discussions/39) -- [Optional에 대한 설명과 사용 시 주의사항](https://github.com/2024-woowacourse-study/level-interview/discussions/47) -- [try-with-resources에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/51) -- [Reflection에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/52) -- [Enum의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/53) -- [for문과 Stream 비교](https://github.com/2024-woowacourse-study/level-interview/discussions/56) -- [final 키워드에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/60) -- [동등성과 동일성의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/20) -- [Java Stream API란](https://github.com/2024-woowacourse-study/level-interview/discussions/59) -- [익명함수와 람다 표현식에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/61) -- [컬렉션 프레임워크란](https://github.com/2024-woowacourse-study/level-interview/discussions/62) -- [깊은 복사(deep copy)와 얕은 복사(shallow copy)에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/63) -- [함수형 인터페이스(Functional Interface)란](https://github.com/2024-woowacourse-study/level-interview/discussions/64) -- [JDBC란](https://github.com/2024-woowacourse-study/level-interview/discussions/76) -- [제네릭이란](https://github.com/2024-woowacourse-study/level-interview/discussions/83) -- [가비지 컬렉션이란](https://github.com/2024-woowacourse-study/level-interview/discussions/84) -- [오버로딩과 오버라이딩의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/85) -- [synchronized 키워드에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/86) -- [ArrayList와 LinkedList의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/88) -- [Sealed 클래스란](https://github.com/2024-woowacourse-study/level-interview/discussions/90) -- [Wrapper Class, Boxing, Unboxing 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/5) -- [JVM 메모리 영역에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/82) -- [표준 예외와 커스텀 예외의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/91) -- [Set과 List의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/92) -- [Inner Class의 특징](https://github.com/2024-woowacourse-study/level-interview/discussions/96) -- [직렬화와 역직렬화에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/99) -- [Record 클래스란](https://github.com/2024-woowacourse-study/level-interview/discussions/102) -- [Atomic Type이란](https://github.com/2024-woowacourse-study/level-interview/discussions/97) +1. [접근 제어자의 차이점](https://github.com/2024-woowacourse-study/level-interview/discussions/8) +2. [인터페이스와 추상 클래스의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/11) +3. [원시값 포장과 VO의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/4) +4. [static과 non-static의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/19) +5. [생성자 체이닝이 무엇이고 필요한 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/22) +6. [일급 컬렉션이 무엇이고 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/27) +7. [Checked Exception과 Unchecked Exception의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/21) +8. [String Pool이 무엇이고 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/28) +9. [Stack 대신 Deque를 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/32) +10. [equals와 hashCode를 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/33) +11. [String, StringBuffer, StringBuilder의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/38) +12. [Java 파일이 실행되는 과정](https://github.com/2024-woowacourse-study/level-interview/discussions/39) +13. [Optional에 대한 설명과 사용 시 주의사항](https://github.com/2024-woowacourse-study/level-interview/discussions/47) +14. [try-with-resources에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/51) +15. [Reflection에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/52) +16. [Enum의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/53) +17. [for문과 Stream 비교](https://github.com/2024-woowacourse-study/level-interview/discussions/56) +18. [final 키워드에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/60) +19. [동등성과 동일성의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/20) +20. [Java Stream API란](https://github.com/2024-woowacourse-study/level-interview/discussions/59) +21. [익명함수와 람다 표현식에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/61) +22. [컬렉션 프레임워크란](https://github.com/2024-woowacourse-study/level-interview/discussions/62) +23. [깊은 복사(deep copy)와 얕은 복사(shallow copy)에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/63) +24. [함수형 인터페이스(Functional Interface)란](https://github.com/2024-woowacourse-study/level-interview/discussions/64) +25. [JDBC란](https://github.com/2024-woowacourse-study/level-interview/discussions/76) +26. [제네릭이란](https://github.com/2024-woowacourse-study/level-interview/discussions/83) +27. [가비지 컬렉션이란](https://github.com/2024-woowacourse-study/level-interview/discussions/84) +28. [오버로딩과 오버라이딩의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/85) +29. [synchronized 키워드에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/86) +30. [ArrayList와 LinkedList의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/88) +31. [Sealed 클래스란](https://github.com/2024-woowacourse-study/level-interview/discussions/90) +32. [Wrapper Class, Boxing, Unboxing 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/5) +33. [JVM 메모리 영역에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/82) +34. [표준 예외와 커스텀 예외의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/91) +35. [Set과 List의 차이](https://github.com/2024-woowacourse-study/level-interview/discussions/92) +36. [Inner Class의 특징](https://github.com/2024-woowacourse-study/level-interview/discussions/96) +37. [직렬화와 역직렬화에 대해 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/99) +38. [Record 클래스란](https://github.com/2024-woowacourse-study/level-interview/discussions/102) +39. [Atomic Type이란](https://github.com/2024-woowacourse-study/level-interview/discussions/97) ### OOP -- [좋은 객체의 정의](https://github.com/2024-woowacourse-study/level-interview/discussions/6) -- [SOLID 원칙에 대한 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/81) -- [God Class를 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/7) -- [Getter를 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/16) -- [상속을 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/30) -- [상속과 조합 비교](https://github.com/2024-woowacourse-study/level-interview/discussions/18) -- [원시 값을 포장하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/34) -- [응집도와 결합도 비교](https://github.com/2024-woowacourse-study/level-interview/discussions/46) -- [의존성에 대한 설명과 높은 의존성의 단점](https://github.com/2024-woowacourse-study/level-interview/discussions/66) -- [캡슐화에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/105) -- [instanceof를 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/69) -- [디미터 법칙에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/109) -- [MVC 패턴을 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/25) -- [도메인이 뷰에 대한 의존을 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/12) -- [싱글톤 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/79) -- [템플릿 메서드 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/57) -- [전략 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/15) -- [상태 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/55) -- [커맨드 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/94) -- [상태 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/55) -- [캐싱의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/35) +40. [좋은 객체의 정의](https://github.com/2024-woowacourse-study/level-interview/discussions/6) +41. [SOLID 원칙에 대한 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/81) +42. [God Class를 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/7) +43. [Getter를 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/16) +44. [상속을 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/30) +45. [상속과 조합 비교](https://github.com/2024-woowacourse-study/level-interview/discussions/18) +46. [원시 값을 포장하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/34) +47. [응집도와 결합도 비교](https://github.com/2024-woowacourse-study/level-interview/discussions/46) +48. [의존성에 대한 설명과 높은 의존성의 단점](https://github.com/2024-woowacourse-study/level-interview/discussions/66) +49. [캡슐화에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/105) +50. [instanceof를 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/69) +51. [디미터 법칙에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/109) +52. [MVC 패턴을 사용하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/25) +53. [도메인이 뷰에 대한 의존을 지양하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/12) +54. [싱글톤 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/79) +55. [템플릿 메서드 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/57) +56. [전략 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/15) +57. [상태 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/55) +58. [커맨드 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/94) +59. [상태 패턴에 대한 설명과 사용 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/55) +60. [캐싱의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/35) ### Clean Code -- [클린코드에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/9) -- [가독성이 높은 코드를 작성하기 위한 개인적인 노력](https://github.com/2024-woowacourse-study/level-interview/discussions/23) -- [자바 네이밍 컨벤션에 대 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/107) -- [미션을 진행하면서 랜덤 값을 테스트한 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/110) -- [주석 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/108) -- [좋은 예외 처리에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/26) -- [명확하지만 너무 긴 메서드명 vs 명확하지 않지만 짧은 메서드명](https://github.com/2024-woowacourse-study/level-interview/discussions/106) -- [null, optional, 널 객체 특징과 어떤 방식을 선호하는지 근거와 함께 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/100) -- [null 리턴의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/75) -- [인자가 많은 메서드의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/74) -- [정적 팩토리 메서드의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/29) -- [불변성에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/17) -- [불변 객체와 가변 객체의 차이점](https://github.com/2024-woowacourse-study/level-interview/discussions/111) -- [방어적 복사와 불변 컬렉션을 사용하는 상황](https://github.com/2024-woowacourse-study/level-interview/discussions/50) -- [멤버변수가 많은 클래스의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/54) +61. [클린코드에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/9) +62. [가독성이 높은 코드를 작성하기 위한 개인적인 노력](https://github.com/2024-woowacourse-study/level-interview/discussions/23) +63. [자바 네이밍 컨벤션에 대 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/107) +64. [미션을 진행하면서 랜덤 값을 테스트한 경험](https://github.com/2024-woowacourse-study/level-interview/discussions/110) +65. [주석 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/108) +66. [좋은 예외 처리에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/26) +67. [명확하지만 너무 긴 메서드명 vs 명확하지 않지만 짧은 메서드명](https://github.com/2024-woowacourse-study/level-interview/discussions/106) +68. [null, optional, 널 객체 특징과 어떤 방식을 선호하는지 근거와 함께 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/100) +69. [null 리턴의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/75) +70. [인자가 많은 메서드의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/74) +71. [정적 팩토리 메서드의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/29) +72. [불변성에 대한 설명과 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/17) +73. [불변 객체와 가변 객체의 차이점](https://github.com/2024-woowacourse-study/level-interview/discussions/111) +74. [방어적 복사와 불변 컬렉션을 사용하는 상황](https://github.com/2024-woowacourse-study/level-interview/discussions/50) +75. [멤버변수가 많은 클래스의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/54) ### Test -- [자신만의 테스트 철학](https://github.com/2024-woowacourse-study/level-interview/discussions/24) -- [테스트 코드를 작성하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/40) -- [단위 테스트에 대한 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/10) -- [본인이 생각하는 좋은 테스트 코드의 특징](https://github.com/2024-woowacourse-study/level-interview/discussions/42) -- [@BeforeEach를 사용한 테스트의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/101) -- [주어진 테스트 코드의 문제점](https://github.com/2024-woowacourse-study/level-interview/discussions/48) -- [테스트 대역 종류와 사용 상황 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/41) -- [assertJ와 junit의 차이점](https://github.com/2024-woowacourse-study/level-interview/discussions/36) -- [TDD의 장점과 TDD를 해본 소감](https://github.com/2024-woowacourse-study/level-interview/discussions/37) -- [예외 메세지 테스트에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/72) -- [테스트에서만 필요한 메서드에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/44) -- [private 메서드를 테스트해야하는 지에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/43) -- [테스트 커버리지가 높다고 무조건 좋은지에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/45) -- [테스트 코드에서 리플렉션을 이용한 extracting 메서드에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/104) +76. [자신만의 테스트 철학](https://github.com/2024-woowacourse-study/level-interview/discussions/24) +77. [테스트 코드를 작성하는 이유](https://github.com/2024-woowacourse-study/level-interview/discussions/40) +78. [단위 테스트에 대한 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/10) +79. [본인이 생각하는 좋은 테스트 코드의 특징](https://github.com/2024-woowacourse-study/level-interview/discussions/42) +80. [@BeforeEach를 사용한 테스트의 장단점](https://github.com/2024-woowacourse-study/level-interview/discussions/101) +81. [주어진 테스트 코드의 문제점](https://github.com/2024-woowacourse-study/level-interview/discussions/48) +82. [테스트 대역 종류와 사용 상황 설명](https://github.com/2024-woowacourse-study/level-interview/discussions/41) +83. [assertJ와 junit의 차이점](https://github.com/2024-woowacourse-study/level-interview/discussions/36) +84. [TDD의 장점과 TDD를 해본 소감](https://github.com/2024-woowacourse-study/level-interview/discussions/37) +85. [예외 메세지 테스트에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/72) +86. [테스트에서만 필요한 메서드에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/44) +87. [private 메서드를 테스트해야하는 지에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/43) +88. [테스트 커버리지가 높다고 무조건 좋은지에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/45) +89. [테스트 코드에서 리플렉션을 이용한 extracting 메서드에 대한 개인적인 견해](https://github.com/2024-woowacourse-study/level-interview/discussions/104)