본문 바로가기

전체 글

(216)
Http Client는 어떤 걸 사용해야 하나? Http Client 종류 RestTemplate은 Spring 5 이후 Deprecated RestTemplate이 Deprecated 되는 것 아니다? (https://velog.io/@dailylifecoding/Spring-RestTemplate-wont-Deprecate) FeignClient는 관리 효용성이 좋으나 느림 WebClient 가 non blocking 방식이라 현재 추천 cf. https://www.baeldung.com/spring-boot-feignclient-vs-webclient
코딩테스트 시간 설계 방법 시간 복잡도 실제 코딩 테스트 문제의 연산 시간 제한은 1~2초 가량이며, 보통 연산 횟수가 1억(10의 8승, 100,000,000)을 넘어가도록 작성하면 오답 판정 받을 수 있음에 주의해야 한다. 연산 시간 제한이 1초인 문제의 경우 N의 범위가 500: 시간 복잡도가 O(N³) 알고리즘을 설계하면 문제를 풀 수 있다. N의 범위가 2,000: 시간 복잡도가 O(N²) 알고리즘을 설계하면 문제를 풀 수 있다. N의 범위가 100,000: 시간 복잡도가 O(NlogN) 알고리즘을 설계하면 문제를 풀 수 있다. N의 범위가 10,000,000: 시간 복잡도가 O(N) 알고리즘을 설계하면 문제를 풀 수 있다. 공간 복잡도 공간 복잡도를 표기할 때도 빅오 표기법을 이용한다. 일반적으로 메모리 사용량 기준은 ..
최적화된 테이블 설계를 위한 15가지 팁 1. 적절한 데이터 타입을 선택하라. 2. 데이터 정규화 데이터 중복성을 줄이고 무결성을 확보하라. 3. null 값들은 피하라. 'NOT NULL'을 사용할 것. 4. 데이터를 인덱싱하라. 자주 검색되는 컬럼에 인덱스를 만들어 쿼리 성능을 향상할 것. 5. 제약 조건을 걸어라. 'UNIQUE'와 'FOREIGN KEY'와 같은 제약 조건을 걸 것. 6. 예약어를 사용하지 마라. 'SELECT'와 'FROM'같은 키워드를 컬럼 명으로 사용하지 말 것. 7. 좋은 이름을 지어라. 테이블, 컬럼, 인덱스에 의미 있는 이름을 지을 것. 8. 적절한 기본 키를 사용하라. 9. 보안을 생각하라. 10. 설계를 테스트하라. 11. 성능을 최적화하라. 12. 표준 형식으로 날짜 및 시간을 저장하라. 13. 적절한 테..
테스트 코드를 만들어야 하는 이유 Test code란? - 소프트웨어의 기능과 동작을 테스트하는데 사용되는 코드. -소프트웨어의 결함을 찾아내고 수정을 하는 과정에서 매우 중요. - 테스트 코드는 개발자가 작성한 코드를 실행하고 예상된 결과가 나오는지 확인하는데 사용됨. V모델에서 Test code - SDLC 중 하나로, 시스템 개발 과정을 시각화한 모델. - 각 단계의 테스트 코드는 대상의 범위에 따라 V모델에서 확인 가능. 1. 단위 테스트 (Unit test) - 메서드 단위로 코드가 의도한 대로 작동하는지 확인. - Java에서는 대표적으로 Junit 사용. public class Calculator { public int add(int a, int b) { return a + b; } } import org.junit.Test..
JAVA 버전별 특징 1. 어떤 자바 버전을 사용해야 할까? 기업의 기존 프로젝트에서는 Java 8을 사용해야 하는 경우가 많음 일부 레거시 프로젝트는 Java 1.5(2004년 출시) 또는 1.6(2006년 출시)에서 중단되기도 함 최신 IDE, 프레임워크 및 빌드 도구를 사용하고 그린 필드 프로젝트를 시작하는 경우 Java 11(LTS) 또는 최신 Java 17 LTS를 망설임 없이 사용할 수 있다. 안드로이드 개발의 특별한 분야가 있는데, 자바 버전은 기본적으로 자바 7에 고정되어 있고, 특정한 자바 8 기능들을 이용할 수 있다. 또는 코틀린 프로그래밍 언어를 사용하는 것으로 전환 2. 특정 자바 버전을 학습해야 할까? 12, 17와 같은 특정 Java 버전만을 "학습"할 필요가 없다. Python 2에서 3과 같이 릴..
OKKY의 4월 세미나 '개발자, 어떻게 성장하는가' 후기 영상 링크 : https://www.youtube.com/watch?v=3jkDAeahXes OKKY의 4월 세미나로 국민대학교 이민석 교수님의 개발자, 어떻게 성장하는가? 영상을 시청했다. 1시간 30분 영상으로 상당히 길다고 생각했지만 들을 수록 점점 솔깃한 내용이어서 흥미로웠다. 와 닿았던 내용 정리: [개발자의 성장이란 무엇일까?] 1. 잘 성장하고 있는 개발자 자가진단 - 언제 시작했는지도 모르게 코딩하곤 한다. - 최근에 새로운 언어, 도구, 수학 개념을 배운 것이 있다. - 관심 있게 보고 있는 오픈소스 프로젝트가 몇 개 있다. - 지난 6개월 동안, 커뮤니티에서 발표를 해 본 적이 있다. - 나는 누군가의 멘토이며, 또 누군가의 멘티읻. - 개인 프로젝트 리파지토리와 문서를 잘 유지하고 있..
Java 기초 상식 정리 1. Java 기초 상식 JVM(Java Virtual Machine)은 자바로 작성된 프로그램을 실행하는 데 사용되는 가상머신. JVM은 자바 어플리케이션을 바이트코드로 변환하고, 이 바이트코드를 OS(운영체제)에 상관 없이 실행할 수 있게 함. 이렇게 함으로써 자바는 플랫폼 독립적인 특성을 가짐. 2. Java의 장점 * 플랫폼 독립적 - 자바 어플리케이션은 한 번 작성하면 어떤 플랫폼이든 실행 가능. - JVM이 여러 OS에서 구현될 수 있기 때문. - 타 언어는 언어에 맞는 환경에 따라 빌드를 다르게 해야 하지만 자바는 jar, war 파일을 OS 상관없이 JVM 위에서 동작. * 메모리 관리 - JVM은 가비지 컬렉션(GC)을 통해 메모리 관리를 수행하기에 개발자가 메모리를 직접 관리할 필요가 ..
자바 개발을 위한 기본적인 Memory-Saving 기술 출처 https://careerly.co.kr/comments/81994?utm_campaign=user-share 조서희 / 자바 개발을 위한 기본적인 Memory-Saving ... | 커리어리 📌 primitive types를 사용하라. ex. int x = 42; (O) Integer x = 42... careerly.co.kr https://medium.com/javarevisited/basic-memory-saving-techniques-for-java-programming-6677a7237a69 Basic Memory-Saving Techniques for Java Programming Best Practices for Optimizing Java Code and Reducing Memory..