전체 글

Develop/Spring

[Spring Boot] Jsoup으로 OG태그 메타 데이터 크롤링하기

개요 살면서 한 번 쯤은 url을 보낸 경험이 있을 것 같다. 나에게 보내기든, 남에게 보내기든 카톡이나 슬랙 등에 url을 공유하면 미리보기가 뜬다. 이런 미리보기 데이터는 어떻게 출력되는 걸까? 그리고 이 데이터들을 어떻게 하면 가져다 쓸 수 있을까? 🤔 미리보기가 출력되는 방식을 관리하는 OG태그에 대해 알아보고, Jsoup 라이브러리를 이용해 데이터를 수집해보자. OG (Open Graph) 프로토콜 대부분의 콘텐츠는 URL로 Facebook에 공유되므로, Facebook에 콘텐츠가 표시되는 방식을 관리하기 위해 오픈 그래프 태그로 웹사이트를 마크업하는 것이 중요합니다. - Meta for Developers Open Graph는 페이스북(메타)에서 개발한 메타데이터 프로토콜이다. 위 인용에 기재..

Develop/Kotlin

[Kotlin] 코틀린을 쌈싸먹어 보자 (1)

개요 자바로 개발자로 짧은 시간을 보내면서 느낀 점은, 자바는 수많은 미움?을 받고 있다는 것이다. 아직 살면서 자바 좋다는 사람 못 봤다. 나는 솔직히 자바라는 프로그래밍 언어에서 큰 불편함을 느낀 적이 없어서 (C로 입문해서 그럴지도?) 별 생각이 없었는데, 최근 코틀린과 자바를 비교하는 말들이 많아진게 느껴졌다. 코틀린 한 번 쓰면 자바로 돌아갈 수 없다는 말이 진짜인지, 직접 코틀린을 사용해보고 확인해보자 🚀 코틀린 등장 배경 의외로 코틀린은 자바의 단점을 개선하기 위해, 또는 자바의 대체품으로 등장한 언어는 아니다. 위키백과를 참고했을 때, 코틀린의 목적은 스칼라만큼 많은 기능을 제공하면서, 자바만큼 빠르게 컴파일하는 것이라고 봐도 무방할 듯 하다. 코틀린이 현재까지 제공하는 기능들의 특징은 다..

Develop/OS

[OS] Spin Lock (스핀락)에 대해 알아보자

개요 때는... 2023년 5월 24일. MeetCoder 10기 첫번째 밑업을 진행하던 중이었다. 민철님의 '분산락을 이용한 동시성 이슈 해결' 발표가 진행되던 중 채팅창에 요런 질문이 나왔다. 스핀락...? 스핀락이 뭐지? 🤔 태어나서 처음 들어본 (또는 들었는데 까먹은) spin lock에 대해 낱낱이 파헤쳐보려 한다 😎 Spinlock (스핀락)의 정의 Race Condition 상황에서 Lock이 반환될 때까지, 즉 Critical section에 진입 가능할 때까지 프로세스가 재시도하며 대기하는 상태 본격적인 설명에 앞서 스핀락의 정의는 위와 같다. 와! 한 문장에서 영어 단어가 3개나 나왔다! 하나씩 풀어서 살펴보자. Race Condition (경쟁 상태) 멀티 프로세스 환경에서 프로세스가..

Develop/Spring

[Spring Boot] count를 구현하는 5가지 방법

개요 프로젝트를 하다보면 count를 자주 사용하게 된다. 게시글의 수, 댓글의 수, 친구 수, 알림 수, 통계 처리 등 아주 다양한 count 요구사항이 존재한다. Spring JPA를 사용하면 count 키워드 (쿼리 메소드)를 이용해 아주 쉽게 해당 기능을 구현할 수 있다. 하지만 우리가 무심코 사용하는 count 쿼리, 과연 데이터 수가 많을 때에도, 그리고 request 수가 (또는 TPS) 많을 때에도 잘 작동할까? count 를 구현하는 5가지 방법들과, 각각의 장단점을 알아보자. 개발 환경 1. Framework : Spring Boot 2.6 2. Programming Language : Java 11 3. DataBase : MySQL 8 4. OS : macOS Ventura 13.2..

스껄한우디
호그와트 장학생