본문 바로가기

전체 글115

Don't practice, do something! (from reddit) Studying algorithms and using LeetCode is really just dancing around the problem. 4년 동안 job을 구하지 못한 사람에게 해준 한 reddit 유저의 뼈 때리는 조언. 이전에 포스팅했던 사례들과 맥을 같이 하는 조언이다. 자료구조나 알고리즘도 물론 중요하지만, 결국 개발자는 무엇이라도 개발을 할 수 있어야 하는 것. 프로젝트를 만드는 것을 자꾸 회피한다면 그저 문제 근처에서 춤이나 추고 있는 것과 다를 것이 없다. We need someone who could actually build software even if they didn't know the technology or processes that we used It doesn't .. 2024. 1. 10.
[JPA] - 자바 진영의 데이터베이스 처리 기술 발전 1. JPA와 Mybatis의 차이 1) JDBC의 문제는 무엇인가 우선 자바 애플리케이션이 내부적으로 데이터베이스와 상호 작용이 필요할 때, 사용할 수 있는 기술은 크게 보면 JDBC, MyBatis, JPA(with QueryDSL) 등이 있다는 점을 기억하자. 그리고 MyBatis와 JPA는 모두 JDBC의 단점을 해소하기 위해 사용되는 기술이라는 점도! 결국 JPA와 MyBatis를 이해하기 위해서는 JDBC의 단점이 무엇인지 아는 것으로 시작해야 한다. 자바 애플리케이션은, 특히 백엔드라면, 애플리케이션 로직에 따라 DB를 활용해야 하는 순간이 반드시 오기 마련이다. 그때 데이터베이스 상호작용의 상세 사항을 숨기고(정보 은닉), 적절한 캡슐화를 통해 자바 애플리케이션 입장에서는 자바 인터페이스에.. 2024. 1. 9.
[스프링] - 스프링이 Java Bean이 유효성을 검증하는 방법 ※ 이 포스팅은 스프링 프레임워크가 어떻게 @Valid 같은 어노테이션을 체크하고 실행하는지 그 원리를 공부한 것을 정리한 포스팅입니다. 저에게 어려운 주제라 오류가 있을 수 있습니다. 1. 유효성 검증은 JavaEE 스펙. 스프링 프레임워크는 자동으로 @Valid와 같은 어노테이션을 식별하고, 관련 데이터의 각종 유효성들을 검증해준다. 그리고 그 결과를 BindingResult 객체에 정보를 저장하고 컨트롤러에게 넘겨준다. 이렇게 이야기를 듣고 기술을 쓰면은 마치 유효성 검증이 스프링의 특수한 기능처럼 들린다. 그러나 파고 들더가면 오히려 스프링이 유효성 검증 스펙을 사용하는 입장일 뿐이라는 것이 드러난다. 즉, 유효성 검사와 관련된 API와 기능들은 스프링에 종속된 개념들이 아니다. 우선, 유효성 검.. 2024. 1. 8.
[스프링] 한글 깨짐 문제의 원리와 해결 쿼리 스트링이나 POST의 body 파라미터로 한글 데이터를 전달하면 자바 애플리케이션 내부에서 한글이 깨져버린다. [자바] - 한글이 깨지는 문제의 원리 1. 문자열과 인코딩 문자열을 다루기 위해서는 인코딩(encoding)에 예민해야 한다. 컴퓨터는 0과 1로 이루어진 비트를 기반으로 정보를 처리한다. 따라서 컴퓨터로 유용한 일을 하기 위해서는 0과 1 linocraft.tistory.com 한글이 깨지는 원리는 위 링크에 포스팅했다. 다만 이것은 인코딩과 관련된 일반적인 문제의 원리를 다루므로 구체적으로 스프링에서 한글이 깨지는 근거는 아래의 링크에서 찾을 수 있다. [서블릿] - ServletRequest의 Character Encoding을 utf-8로 설정해야 하는 이유 1. 서블릿 Reque.. 2024. 1. 8.