일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java
- spring boot
- disjoint set
- Python
- 동적계획법
- 다익스트라
- 유니온 파인드
- 엔테크서비스
- 음수가 포함된 최단경로
- compiler
- union-find
- 거쳐가는 정점
- dto
- BufferedReader
- 직무면접
- scikit-learn
- clean code
- Android Studio
- 우선순위큐
- 벨만 포드 알고리즘
- 코딩테스트
- 플로이드 와샬
- 최단경로
- top-down
- Controller
- 기술면접
- onclick
- kmeans
- Django
- bottom-up
- Today
- Total
목록전체 글 (132)
춤추는 개발자
✅ 배경 실무에서는 로깅, 파일 처리 등 비즈니스 로직 외에 다양한 코드를 접할 수 있다. 현업에서 API에 녹아있는 코드를 보면 회사 정책에서 요구하는 로그를 객체에 담아 파일로 보관하는 로직을 접했는데 메서드마다 비슷한 코드가 반복됐다. 이러한 상황을 AspectJ 기반으로 리팩토링하여 유지보수성을 높이기로 계획했다. ✅ AspectJ AspectJ는 스프링 AOP와는 다르게 모든 도메인 객체에 적용할 수 있다는 장점이 있다. 다만, 둘은 다른 목표와 특징을 갖고 있다. [ 기능 및 목표 ] Simply put, Spring AOP and AspectJ have different goals. Spring AOP는 프로그래머가 직면하는 가장 흔한 문제를 해결하기 위해 Spring IoC 전반에 걸쳐 간..
✅ 강의 소개 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있습니다. ✅ 강의별 후기 [ 메시지, 국제화 ] 다양한 메시지를 한 곳에서 관리하는 기능으로 메시지 관리용 파일(ex. messages.properties)에서 화면에 보이는 문구 등을 관리한다. 덧붙여서 메시지들을 나라별 언어로 관리하면 서비스를 국제화 할 수 있다. (ex. messages-ko.properties, messages-en.properties) - 스프링의 경우, 인터페이스인 MessageSource로 메시지 관리 기능을 제공하며, 구현체인 ResourceBundleMessga..
✅ 강의 소개 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다. ✅ 강의별 후기 [ Servlet ] Servlet은 톰캣같은 웹 어플리케이션 서버를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음, 톰캣 서버를 실행. Servlet을 생성하여 실제 Http 요청/응답을 수행. HttpServletReqeust / HttpServletResponse를 기반으로 각 객체에 담기는 Parameter에 대한 이해. - Application 클래스 @ServletComponentScan으로 Servlet을 직접 등록해서 사용. - HttpServle..
✅ 강의 소개 초급자를 위해 준비한 [웹 개발, 백엔드] 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. ✅ 강의별 후기 [ 객체 지향 설계와 스프링 ] 스프링이 만들어진 역사와 스프링의 생태계, 프레임워크에 대해 학습. 좋은 객체 지향 어플리케이션을 개발하기 위한 개념들을 이해 및 복습 - 추상화, 캡슐화, 상속, 다형성 - 다형성의 본질 (유연한 변경) - 객체를 설계할 때, 역할과 구현을 명확히 분리. - SOLID 원칙 SRP(변경에 따른 파급효과 최소화) OCP(확장에는 열려있고 변경에는 닫혀있음) LSP(프로그램의 정확성, 다형성의 인터페이스 규약) ISP(여러개의 인터페이스) DIP(추상화에 의존) [ 스프링 핵심 원리 이해..
보호되어 있는 글입니다.
💻 프로젝트 페이지와 구조 ⚔ 기술 스택 Spring boot 3.0.1 Gradle-7.6 JDK-19 Springboot Data JPA SpringDoc 2.0.0 MySql 8.0.27 JWT OAuth github - projec-gyu 네이버 지도 API (https://www.ncloud.com/product/applicationService/maps) 배달앱 관련 API (https://hyphen.im/product-api/view?seq=16) 데이터를 직접 만들지 or API를 끌어다 쓸지 고민이 필요.. Vue.js (임시) 🧑 개발 순서 [ 로그인과 인증기능 ] - DB연동 및 User Modeling - 기본 인증부터 토큰 인증까지 - JWT와 SpringSecurity를 활용한..
상속은 코드를 재사용하는 강력한 수단이지만, 항상 최선은 아니다. 잘못 사용하면 오류를 내기 쉬운 소프트웨어를 만들게 된다. 일반적인 구체 클래스를 패키지 경계를 넘어, 즉 다른 패키지의 구체 클래스를 상속하는 일은 위험하다. 메서드 호출과 달리 상속은 캡슐화를 깨트린다. 다르게 말하면, 상위 클래스가 어떻게 구현되느냐에 따라 하위 클래스의 동작에 이상이 생길 수 있다. 이러한 이유로 상위 클래스 설계자가 확장을 충분히 고려하고 문서화도 제대로 해두지 않으면 하위 클래스는 상위 클래스의 변화에 발맞춰 수정돼야만 한다. [ HastSet을 사용한 예시 ] public class InstrumentedHastSet extends HastSet { private int addCount = 0; public I..