전체 글480 동기 비동기 블로킹 논블로킹 개념 정리 목차 동기/비동기 & 블로킹/논블록킹 동기(Synchronous) / 비동기(Asynchronous) 비동기의 성능 이점 동기와 비동기는 작업 순서 처리 차이 Blocking / Non-Blocking 비동기와 논블로킹 개념 차이 비동기 논블로킹과 콜백 함수 누가 제어권을 가지고 있느냐 동기/비동기 + 블로킹/논블로킹 조합 Sync Blocking 조합 실생활 동작 예시 코드 동작 예시 적용 프로그램 예시 Async Non-Blocking 조합 실생활 동작 예시 코드 동작 예시 활용 예시 프로그램 Sync Non-Blocking 조합 실생활 동작 예시 코드 동작 예시 활용 예시 프로그램 Sync Blocking vs Sync Non-Blocking Async Blocking 조합 Async Blockin.. Web/스프링 2024. 1. 18. 이미지 자르는 프로그램, 이미지 크롭, 잘라내기 여러가지문서가 있다. 이 부분은 주기적으로 필요한 부분이라 필요할때마다 글 작성을 한다. [240114] 현재까지 찾은 내용이다. 프로그램을 실질적으로 쓰는건 하나인데, 그건 나중에 다시 찾아 넣는다. - 내가 쓰는 더 쉬운프로그램 - 다른 프로그램 https://image-cropper.software.informer.com/ Image Cropper. Get the software safely and easily. Application designed to easily crop a batch of images to a specific aspect ratio. image-cropper.software.informer.com ----- 주기적으로 봐야할 프로그램 블로그 https://pcwindows.t.. 컴퓨터, 프로그램 관련 지식 2024. 1. 14. [gorm] mysql json 구조 쿼리 및 JSON_OVERLAPS golang , mysql, gorm 환경에서 json 필드를 사용해서 데이터를 관리하려함 원하는건 where 여러 조건 and ( 요일 in ( '월', 화, 수 ) 이런 느낌으로 셀렉하고 싶었으나... 문제가 좀 많았다. 문제 1 mysql, mariaDB 가 json 쿼리 함수가 다르다. 마리아DB는 SELECT JSON_CONTAINS(@json, '2', '$.A'); 이런 식이고, mysql은 파라미터가 2개만 들어감 https://stackoverflow.com/questions/43247098/mysql-filter-json-contains-any-value-from-array MySQL Filter JSON_CONTAINS Any value from Array I have a JSON f.. Web/GoLang 2023. 9. 5. [golang] time 타입 parsing 오류 , gorm bodyparse 해결방안 문제 다른 포스팅에도 썼는데, parsing time "\"2016-01-02 15:04:05\"" as "\"2006-01-02T15:04:05Z07:00\"": cannot parse " 15:04:05\"" as "T" 이런 에러가 난다. Go 에서는 날짜가 정말 문제가 많은것같다. 5년전에도 부장님이 이런 말을 했었는데... . - fiber에서 bodyparse로 파싱이 안됨. - custom으로 파싱을해도 gorm 에 입력이 안됨 두가지 문제였다. 첫번째 문제는 지난번에 해결했었음 근데 두번째 문제가 해결이 안되었음 해결 코드를 보여준다 // HHMMTime 구조체를 정의합니다. type HHMMTime struct { time.Time } // Value 메서드는 데이터베이스에 값을 쓸 때 .. Web/GoLang 2023. 9. 1. [golang] stringer 열거형이나 const 일때 자동으로 tostring 할수 있는 제터레이터 auto-generate Stringer tool of Golang https://cafemocamoca.tistory.com/288 [Go] A Tour of Go Exercise : Stringers 풀이 tour.golang.org/methods/18 A Tour of Go tour.golang.org stringer에 대해서 먼저 알아보자면 fmt 패키지에 정의된 인터페이스로 흔하게 사용한다. Stringer는 특정 타입을 string으로 묘사할 수 있다. fmt 패키지를 보 cafemocamoca.tistory.com https://last9.io/blog/golang-stringer-tool/ Golang's Stringer tool | Last9 Learn about how to use, extend and auto-generate Stringer tool .. Web/GoLang 2023. 8. 22. [golang] time 타입 parsing 오류 (parsing time "~~~" as "~~~": cannot parse "~~~" as "~~~") 배경 - fiber 프레임워크 - req 로 온 데이터를 구조체에 bodyparser로 넣을 생각 - 파싱된 구조체로 바로 gorm 입력 기본적으로 바로 아래걸 참고함 https://limm-jk.tistory.com/65#recentComments 좋은 코드이다만 ... 내 경우에는 해결이 안되는게, 해당 코드는 언마샬을 재정의해서 구조체에 잘 담긴다. 문제는 변수가 재정의된 변수이기 때문에 gorm 으로 바로 전달했을시 인식을 못한다. 최종적으로는 string으로 받고, DB에 넣을때 변환하든가, 코드상에서 변환하여 gorm 용 구조체를 따로 만들어야한다. 프레임워크가 이렇게 동작하는게 옳바른지 모르겠다. req 파싱후, gorm 까지 잘 전달되도록 해햐하는게 당연하지 않은건지.. 다른 해결법은 없어.. Web/GoLang 2023. 8. 22. [gorm] many2many Association 관계 grom , go 는 쓰면 쓸수록 쓰레기 같다... many2many 관계를 a, a-b ,b 다대다 관계에서 쓰는건데, create는 문제없이 잘 되는데, update 가 문제다 .. if err := r.DB().Session(&gorm.Session{FullSaveAssociations: false}).Omit("Image").Updates(banner).Error; err != nil { logger.Error(gormhelpers.ErrUpdateRecord, err) return gormhelpers.ErrUpdateRecord } if banner.Image != nil { // Update associated images using Association if err := r.DB().Mod.. Web/GoLang 2023. 8. 16. 윈도우10 WSL2 설치하기, WSL2 우분투 설치하기 WSL이란? Linux용 Windows 하위 시스템을 사용하면 개발자가 기존 가상 머신의 오버헤드 또는 듀얼 부팅 설정 없이 대부분의 명령줄 도구, 유틸리티 및 애플리케이션을 비롯한 GNU/Linux 환경을 수정하지 않고 Windows에서 직접 실행할 수 있습니다. WSL2와 WSL1 비교 WSL 2는 Windows 10, 버전 1903, 빌드 18362 이상에서만 사용할 수 있습니다. 윈도우10에서 WSL2 설치해서 우분투 리눅스를 이용해보자 1. 윈도우 버전을 확인하기 위해 윈도우 키 + R 키를 눌러 실행창을 켜줍시다. 2. winver 을 입력하고 엔터키를 눌러줍시다. 3. 버전 부분에서 20H1 이상인지 확인해주세요. WSL2는 윈도우10 버전 1903의 빌드 18362 이상에서만 사용 가능합니.. OS/windows 2023. 8. 8. [golang] errors.Is 재정의시 사용법 자신의 방법을 정의하는 Is또 다른 용도는 다른 인스턴스의 오류를 비교하는 것입니다. 동일한 필드 오류가 있는 특정 필터 인스턴스를 일치시키도록 지정하여 고유한 오류를 패턴 일치시킬 수 있습니다. 다음은 오류 유형을 정의합니다 ResourceErr. type ResourceErr struct { Resource string Code int } func (re ResourceErr) Error() string { return fmt.Sprintf("%s: %d", re.Resource, re.Code) } 임의의 필드가 설정되었을 때 두 인스턴스를 일치시키려면 ResourceErr사용자 정의 메소드를 작성할 수 있습니다 Is. func (re ResourceErr) Is(target error) bool .. Web/GoLang 2023. 7. 26. 면접 질문리스트 230719 k사 질문 리스트 트러블 슈팅관련해서 경험 얘기해봐라 트러블슈팅에서 기술적인 부분을 강조해서 게이트웨이를 왜 사용하느냐 ? 서비스의 게이트웨이의 어떤 내용을 수행했는가 ? 클로저가 무엇인가 자바 자바 8 버전을 사용해봤느냐 GC 가 동작하는 구조를 키워드를 통해 설명 인터페이스와 추상클래스의 차이점 쓰레드와 go루틴의 차이점 쓰레드의 과거방식(java8 이전)에서 선언하는 방법 ( extend thread , implements runnable ) java8 에 대한 여러 질문들 함수형 언어를 써봤느냐 ? 요구사항이 왔고 쇼핑몰을 생성하는데, 어떤식으로 진행하느냐? 바로 구현하나, 설계를 진행하나 설계를 진행하는 경우 어떤 프로세스로 진행하는가 ( uml 을 듣고싶었던거 같음 ) 개발ETC/면접 후기 2023. 7. 20. [Spring] 필터(Filter)와 인터셉터(Interceptor)의 개념 및 차이 https://dev-coco.tistory.com/173 [Spring] 필터(Filter)와 인터셉터(Interceptor)의 개념 및 차이 개발을 하다 보면 공통적으로 처리해야 할 업무들이 많다. 공통 업무에 관련된 코드를 페이지마다 작성한다면 중복 코드가 많아지게 되고, 프로젝트 단위가 커질수록 서버에 부하를 줄 수도 있 dev-coco.tistory.com 개발을 하다 보면 공통적으로 처리해야 할 업무들이 많다. 공통 업무에 관련된 코드를 페이지마다 작성한다면 중복 코드가 많아지게 되고, 프로젝트 단위가 커질수록 서버에 부하를 줄 수도 있으며, 소스 관리도 되지 않는다. 이에 Spring은 공통적으로 여러 작업을 처리함으로써 중복된 코드를 제거할 수 있는 다음과 같은 기능들을 지원하고 있다. 1.. Web/스프링 2023. 7. 18. 면접 질문 리스트 보호되어 있는 글 입니다. 2023. 7. 17. 이전 1 2 3 4 5 ··· 40 다음