본문 바로가기

개발 관련78

파이썬 맛보기 (1) - 들어가며 예전부터 배워봐야지 한번씩 생각은 했는데, 이상하게 손이 가진 않았던 파이썬 머신러닝을 공부할 때도, 예제가 파이썬으로 되어 있는 책을 읽을 때도, 딱히 파이썬에 대해서 공부하지는 않았던 것 같다. (머신러닝에서도 파이썬을 다루기보단 패키지를 다루는 느낌이고, 예제도 그렇게 어렵게 예제를 작성하진 않으니까, 몰라도 읽는데는 크게 문제 없더라...?!) 실무에서 사용하지 않아서 일까? 뭐 어쨋든 이러저러하게 미루다가 마침 좋은 핑계거리가 생겨서(?) 파이썬을 맛보기로 했다. 1. 파이썬이란? 책이라면 뭐 90년대에 귀도 반 로섬이 크리스마스 때 심심해서 만들었느니 뭐니 이런 얘기가 나오지만, 그 부분은 크게 관심은 없고.. (이 부분도 들어서 알고 있는 부분이다.) 크게 2가지만 알고 있으면 되지 않을까?.. 2023. 11. 25.
h2 db create https://h2database.com/html/tutorial.html#creating_new_databases 2022. 7. 15.
Springboot - Sentry 연동 스프링 부트 프로젝트에서 에러 로그가 발생했을 시 센트리에 등록되고, 등록된 이슈를 슬렉으로 알람받을 수 있도록 합니다. 1. Sentry 프로젝트 생성하기 Project → Create Project 위와 같이 프로젝트를 생성하면, 의존성 추가 방법이나 사용 방법등이 나온 페이지가 나옵니다. 이제 의존성과 발급된 DSN을 스프링 프로젝트에 등록합니다. 2. Springboot 설정하기 센트리를 추가하고, 관련 설정은 logback을 통해 관리할 것입니다. dependencies { implementation 'io.sentry:sentry-spring-boot-starter:5.7.0' implementation 'io.sentry:sentry-logback:5.7.0' } build.gradle 에 .. 2022. 7. 15.
Git Action 으로 배포시 Slack 알람 받기 Git Actions 을 사용하고 있는데, 누군가 배포를 진행하면 슬렉으로 노티를 발생시켜 구성원들이 배포 사실을 인지할 수 있도록 하려고 합니다. 1. 슬렉 앱 추가 Slack API 에서 Create New App을 선택하여 Bot App을 추가합니다. 2. Webhooks 설정 Incoming Webhooks를 선택 Add New Webhook to Workspace 를 눌러 추가 (이미지에는 없으나, Webhook을 허용할 채널을 선택하고, 채널을 선택하면 Webhook URL이 생성되는데 이를 복사하여 git secret 에 추가합니다.) 3. Git Secret 추가 복사한 webhook URL을 가져와서 시크릿을 추가 Name 은 SLACK_WEBHOOK_URL, Value 에는 복사한 We.. 2022. 7. 14.
Immutable Object란? 객체 지향 프로그래밍에 있어 불변 객체는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. (힙 영역에서 그 객체가 가리키고 있는 데이터 자체의 변화가 불가능) 불변 객체를 사용하면 복제나 비교를 위한 조작을 단순화 할 수 있고, 성능 개선에도 도움을 준다. 하지만 객체가 변경 가능한 데이터를 많이 가지고 있는 경우엔 불변이 오히려 부적절한 경우가 있다. 이 때문에 많은 프로그래밍 언어에서는 불변이나 가변 중 하나를 선택할 수 있도록 하고 있다. 대표적인 자바 클래스에는 String 이 있다. String a = "aa" 후 a = "bb" 는 "bb" 에 대한 새로운 객체를 만드는 것 다른 상황일 수도 있는데, 경험한 걸 설명하면 메소드 파라미터를 받을 때 final 이라는 파라미터를 사용한다. 이는 .. 2022. 7. 14.
HashTable vs HashMap HashTable VS HashMap 메모리 내에 key/value 짝으로 되어있는 데이터이다. 두 데이터 타입의 차이점을 알아보고자 한다. 1. 비슷한 점 추가, 삭제, 접근이 비슷하다. get() : 키를 통해 아이템 검색 remove() : 키를 통해 삭제 put() : 아이템을 추가 java.util 패키지 내에 속해있다. 2. 다른 점 두 데이터 타입은 매우 많은 다른 점이 존재하지만, 주된 것 몇 가지만 알아보자 HashTable 의 경우 암묵적으로 동기화되어 멀티 스레드 환경에서 동작하기 용이하다. 엑세스 시 스레드는 HashTable 을 락해 다른 스레드가 동시에 변경하는 것을 방지한다. 반대로 HashMap 의 경우에는 단일 스레드 환경에서 적합하다. 만약 멀티 스레드 환경에서 HashM.. 2022. 7. 14.