본문 바로가기

전체 글188

[SpringBoot] JDBC를 통해 SQL 실행하기(JDBC Connection과 Memory Exceed) 글은 SpringBoot에서 JDBC를 통해 SQL을 실행하면서 공부했던 것을 정리하기 위함입니다.  1. Dependency등록하기JDBC를 쓰기 위해서 Database Dependency를 등록해야합니다. 가장 간단한 Memory Dependency를 설정하기 위해 H2를 활용하여 Dependency를 설정했습니다. 만약 mysql이나 oracle사용할 경우 다른 Dependency를 설정하면 됩니다.  dependencies { implementation 'com.h2database:h2:2.1.214'}  2. application.properties 설정Database에서 어떤 사용자가 쓸 것인지 연결 설정을 추가합니다. h2Database를 통해 설정한다면 기본은 다음과 같습니다. spr.. 2025. 1. 23.
[SpringBoot] SpringApplication Documentation (day1) https://docs.spring.io/spring-boot/api/java/org/springframework/boot/SpringApplication.htmlhttps://docs.spring.io/spring-boot/reference/features/spring-application.html SpringApplication :: Spring Bootimport org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApplication { public static void main(S.. 2025. 1. 22.
[CS] JWT는 전체를 sha256 알고리즘으로 암호화 되는 것이 아닙니다. 결론부터 말하면, 우리가 생각하는 토큰에 signature 부분만 암호화 되는거임. Header랑 payload부분은 base64 인코딩임   JWT(JSON Web Token)는 기본적으로 3개의 파트로 구성되어 있습니다: 헤더(header), 페이로드(payload), 그리고 서명(signature). SHA-256은 JWT의 서명을 생성하는 데 사용되며, 이는 단방향 해시 알고리즘으로 암호화된 값입니다. 아래에서 서버가 토큰 만료 여부를 확인하는 원리를 단계별로 설명하겠습니다.JWT의 구성헤더(Header): 토큰의 타입과 해싱 알고리즘 정보를 포함합니다.{ "alg": "HS256", "typ": "JWT"}페이로드(Payload): 토큰에 포함된 클레임(정보)입니다. 여기에는 토큰 만료 시간(e.. 2025. 1. 15.
[SwiftUI] 개인앱에 2024년 리포트 보여주는 기능 추가 해보는건 어때요? (SwiftUI로 Youtube recap 구현하기) 글은 SwiftUI로 Recap관련한 뷰를 생성했던 여정을 기록하기 위함입니다.  실제 프로젝트 완성 화면 1. 상황 분석개인앱에 2024년 리포트를 보여주고 싶다는 계획을 했습니다. Recap을 어떤 방식으로 구현할까 고민하다가, 실제 Recap을 이용해보면서 어떤 느낌이 들었는지 분석해 봤습니다. 실제 해보고시고 싶으면 (YoutubeMusic -> Avatar -> 나의 Recap) flow로 만나보실 수 있습니다.   리캡을 쓰고나서 있는 기능들을 정리해 보았습니다. 기능 1. 뷰들이 순차적으로 넘어갈 수 있다. progress의 경우 상단에 표시된다.2. 화면을 좌 우로 나누고 클릭시 기능이 수행된다   - 좌 클릭: 이전 Recap화면으로 돌아간다   - 우 클릭: 다음 Recap화면으로 넘어.. 2025. 1. 2.
[회고] 2025 MaraMincho 키보드 특수문자 회고 새로운 회고 방법 키보드 특수문자를 통한 회고 입니다.(제가 만들었습니다. ㅋㅋ;;) 특수문자에 대한 기호와 관련된 일화를 통해 회고가 진행됩니다. 1. Shift + 1 = ! (새로운 일, 새로운 것들에서 인사이트를 얻은 경험)(1) 1년간 3개의 프로젝트 진행2024년은 iOS개발자로 많은 프로젝트를 한 년도 입니다. 24년에는 약 3개의 프로젝트를 진행하였습니다. 짧게 스프린트를 통해 달려가면서 다양한 것들을 배우고 공부했습니다. 프로젝트를 시작하기 전 만발의 준비를 할 때도 있었지만, 진행되면서 한없이 작아지는 스스로를 발견했습니다. 그리고 프로젝트 진행했던 것들을 문서화 하면서 부족한 부분들을 채웠습니다. 짧게 다양한 프로젝트를 하면서 내가 강한 부분과 약한 부분들을 객관화 할 수 있었던 것 .. 2025. 1. 1.
[Swift] 왜 @objc 키워드를 사용해서 UIButton에 매핑해야 될까요? 글을 비판적으로 읽어주세요! 잘못된 부분이 있을수 있습니다.  개요글은 왜 UIButton과 같은 Component들이 function 과 매칭되기 위해 @objc키워드를 붙여야 하는지에 관해 궁금해서 글을 작성했습니다.  swift관점에서 @objc를 쓰는 이유Swift관섬에서 @objc를 쓰는 이유는, UIButton과 같은 UIKit컴포넌트들과 다양한 Class들이 Objective-C 기반이기 때문입니다. Class나 method를 적용할 떄 Objective-C에서 운용 가능하게 만듭니다. Swift는 정적으로 타입을 확인하고 매서드를 호출하지만 Ojective-C에서는 런타임에 접근합니다.  Runtime Introspection vs Reflection이 뭐예요?Objective-C에서 In.. 2024. 12. 29.
[Swift] escaping vs non-escaping 차이점에 대해서 글은 swift에서 function에서 escaping과 non-escpaing이 무엇이 다른지 기록하기 위해 작성되었습니다. 1. Escaping Colsure란?클로저는 함수의 인자로 전달되었지만 함수가 반환된 이후에 호출될 때, 이를 함수에서 벗어나는(escaping) 클로저라고 합니다. 만약 클로저가 함수의 매개변수 중 하나로 전달될 경우, 해당 클로저가 탈출 가능하다는 것을 나타내기 위해 매개변수의 타입 앞에 @escaping 키워드를 작성할 수 있습니다. 클로저가 escape할 수 있는 한 가지 방법은, 클로저가 함수 외부에 정의된 변수에 저장되는 경우입니다. 예를 들어, 비동기 작업을 시작하는 많은 함수들은 완료 핸들러(completion handler)로 클로저를 인자로 받습니다. 이러한 .. 2024. 12. 27.
[네트워크] Mac에서 DHCP 패킷 전달 과정 와이어샤크로 확인해보기 잘못된 내용이 있을수도 있으니 꼭 비판적으로 읽어주시면 감사합니다.  DHCP(Dynamic Host Configuration Protocol)란?동적 호스트 설정 프로토콜(통신규약)'이다. 우리가 통신을 위해 ISP를 통해 IP를 할당 받아야 한다. 이 ISP의 서버를 통해 IP를 할당하는 Porotocl을 의미합니다. Lease우리가 네트워크 진입시 ISP를 통해 Ip를 받아야 하는데 이를 Lease라고 합니다. Lease과정은 4가지로 진행됩니다.DHCP Discover.IP 주소가 할당되지 않은 클라이언트는 MAC 주소를 기반으로 IP 주소를 받아오기 위해 로컬 네트워크에 Discover 패킷을 Broadcast한다. 이때, Broadcast로 뿌려진 패킷은 해당 네트워크 내의 모든 호스트에게 날.. 2024. 12. 18.
[자격증] SQLD 합격 후기 SQLD합격했습니다. 정처기 따고 딸만한 자격증 있나 물색하다가 괜찮은 것 같아서 땄습니다. 자격증 난이도는 높지 않았습니다. 특히 SQL을 자주 그리고 많이 다뤄봤다면 금방 합격할 수 있을 것이라 생각합니다. 책은 노랭이만 활용했습니다.   1과목 1과목은 대부분 암기과목입니다. 아마 정처기를 병행하시는 분들이 있다면 1과목은 쉽게 풀 수 있을 것 같습니다. 노랭이에서 1과목에 나오는 모든 개념들을 정리하고 공부한다면 충분히 과락 점수를 방지할 수 있을 것 입니다.   2과목2과목은 꽤 어려웠습니다. 생소한 개념들이나 SQL을 심도 있게 다루는 문제들이 노랭이 책에 담겨 있었습니다. 저는 1회독할 때 안풀리는 문제들을 넘겼습니다. 그리고 2회독에서 쿼리를 하나하나 뜯어보고 GPT-4o를 활용하여 공부를.. 2024. 12. 15.
[서평] Clean Architecture 1.  CleanArchitecture의 Clean클린 아키텍처에서 Clean이란, A 모듈이 B 모듈에 의해 영향을 받지 않는 상태를 의미하는 것 같습니다. 종종 "오염되었다"(Clean의 반대말인 contaminated)라는 표현을 통해 이를 유추할 수 있었습니다. 책에서는 객체지향 관점에서 코드를 깨끗하게 작성하는 방법에 대해 이야기했지만, 제가 생각하는 클린 아키텍처의 Clean과는 거리가 있어 보였습니다. 로버트 C. 마틴(저자)이 말하는 클린 아키텍처의 Clean은 모듈 간 경계가 완전히 분리된 이상적인 상태를 뜻합니다.(제가 생각한 CleanArchitecture란 모듈 수준의 분리를 의미하는 줄 알았습니다. 따라서 하나의 방법론이라고 이해하고 있었습니다.)2.  Entity이번에 새롭게 알.. 2024. 12. 15.
[서평] 한국판 해리포터 - 난장이가 쏘아올린 작은 공 줄거리소설은 난장이 가족이 강제 철거를 당하는 것으로 시작합니다. 강제철거를 당하게 되면서 아버지는 죽게 됩니다. 아버지의 죽음으로 인해 삶이 더 궁핍해진 가족들은 나가서 일을 하게 됩니다. 하지만 공장의 열악한 근무 환경이 그들의 삶을 흔들었고, 노조또한 노동자의 근무 환경에 대해 개선을 일궈내지 못했습니다. 아버지가 죽고 가장이 되어버린 영수는, 결국 분노로 인해 은강 공장을 운영하는 대표를 죽이려다 엉뚱한 대표의 사촌을 죽이게 됩니다. 열린 재판에서 영수는 열악한 근무 환경에 대해서 이야기를 하였지만, 그것들은 살인의 정당한 이유가 되지 않았습니다. 결국 형장의 영수는 사형선고를 받게 되고, 소설은 마무리 됩니다. 생각아버지를 난장이라고 부르는 악당을 죽여버려(진담 100%)난장이와 그의 아들인 영.. 2024. 12. 14.
[Architecture] MVC vs MVVM Key Differences with examples 정리 https://shakuro.com/blog/mvc-vs-mvvm Exploring MVC vs MVVM: Choosing the Right Architecture | ShakuroDive into the differences between MVC and MVVM architectures. Learn how to choose the best one for your project. Check out the article to learn more.shakuro.com  테스트 관점에서의 MVC vs MVVMMVC테스트 범위 제한: Model은 독립적으로 테스트할 수 있지만 Controller와 View의 테스트가 복잡.유닛 테스트 부족: Controller에서 비즈니스 로직을 다룰 경우 테스트 커버리지가 떨.. 2024. 12. 5.