프로그래밍 언어는 크게 컴파일 언어와 인터프리터 언어로 나뉜다. 컴파일 언어란?컴파일 언어는 소스 코드 전체를 기계어로 한 번에 변환한 후 실행한다. 대표적인 예로는 Java, C, C++, Golang 등이 있다. 인터프리터 언어란?인터프리터 언어는 기계어로 변환하는 과정이 필요하지 않아서, 소스 코드를 한 줄씩 읽으면서 바로 실행한다. 대표적인 예로는 Python, Ruby 등이 있다. 컴파일 언어와 인터프리터 언어의 차이점컴파일 언어는 '실행 속도'가 빠른 것이 장점이다. 코드 전체를 기계어로 한번에 번역한 후 실행하기 때문에, 실행 시간이 빠른 것이다. 이이 비해 인터프리터 언어는 한 줄씩 읽어 가면서 실행하기 때문에 상대적으로 실행 속도가 느리다. 번역과정이 없는 인터프리터와 달리 컴파일..
프로젝트에서 간단하게 '좋아요' 기능을 구현하였다.단순히 개발하는 것은 어렵지 않지만,개발과정에서 어떻게 설계를 하고 어떤 방식으로 구현하는 것이 더 효율적인지 고민을 해보려고 노력했다. 설계와 고민- 좋아요 기능과 취소 기능 API의 분리를 해야할까 좋아요 기능을 개발할 때, 보통 좋아요 API와 취소 API 분리하느냐에 대한 고민들을 많이 한다.나 역시도 고민을 많이 했는데, 최종적으로는 두 기능을 분리하여 API를 개발하였다. 처음에는 하나의 API로 개발했다.개인 프로젝트이고, 좋아요자체에 부가적인 기능이 없기 때문에 하나의 API만으로도 충분하다고 생각했다.그리고 (프론트없이 백엔드만 개발하고 있어서) API 두개보다는 하나로 호출하는 것이 효율적이라고 생각했기 때문이다. 하지만 아래와 같은 ..
Optional에는 참 편리한 기능이 많은 것 같다.if문 없이 null을 방지할 수 있다는 것 자체에 감동받으면서 사용하고 있다👍 좋아요 기능을 ifPresentOrElse를 사용해서 작업했는데, 요놈말고 map, orElse 등의 방식으로 더 많이 사용한다는 피드백을 받았다. 그래서 해당 기능을 map형식으로 바꾸려다가 오류를 만나서... 정리겸 블로그를 작성한다.- 유저가 특정식당에 좋아요를 누른 적이 있으면, 좋아요 취소(좋아요 DB에서 해당 좋아요 삭제)- 좋아요를 누른적이 없다면, 좋아요 (좋아요DB에 좋아요 추가) 위 기능을 수행하는 코드를 작성하면서 Optional을 점차 리팩토링 해보았다. if문과 isPresent isPresent()는 boolean역할로, 값이 존재하면 true..