분류 전체보기(61)
-
[ Golang ] 인터페이스와 제네릭
인터페이스인터페이스는 Go에서 메서드 집합을 정의한 것으로, 해당 메서드를 구현한 모든 타입과 호환될 수 있다.인터페이스의 구현type TestInterface interface { save(string) // 리턴타입이 없는 경우 get() // 리턴타입, 파라미터 모두 있는 경우 put() // 리턴타입, 파라미터 모두 없는 경우 } Go 인터페이스는 Go에서 객체지향을 구현하는 방법으로, 인터페이스를 embed 해 사용한다.다양한 타입이 같은 인터페이스를 구현함으로써, 해당 인터페이스를 매개변수로 받는 함수는 여러 타입과 호환될 수 있다 GenericGo 1.18에서 도입된 제네릭은 여러 타입에서 동작할 수 있는 일반화된 함수와 데이터 구조를 작성하는 방법이다.package mainimpor..
2024.09.11 -
[ 모듈 시스템 ] go는 export 가 없습니다
// /pkg/utils/file1.gopackage utilsimport "fmt"func PublicFunction() { fmt.Println("첫번째 함수")}결론결론부터 말하면 Go 언어는 다른 언어들과 달리 export 키워드가 존재하지 않는다. 즉, 다른 패키지에서 사용할 수 있는 함수나 변수를 지정하는 별도의 키워드 없이, 대소문자만으로 공개 여부를 결정한다. 설명Go에서는 모든 코드가 패키지 단위로 관리되며, 패키지 간 의존성은 모듈 시스템을 통해 관리된다. 패키지는 독립적으로 존재하지만, 필요에 따라 다른 패키지의 요소를 사용할 수 있다. Go의 중요한 점은 대소문자 규칙을 통해 접근 가능 여부를 결정한다는 것이다. 첫 글자가 대문자인 식별자는 패키지 외부에서 접근할 수 있는 공개..
2024.09.10 -
[ Golang ] 배열 값 이해
Go는 기본적으로 참조가 아닌 값으로 동작하고, 배열에서도 마찬가지이다. 즉, 새 변수에 배열을 할당하면 배열을 복사하고 배열에 포함한 값을 복사한다.Go works with values rather than references by default, and this is also true for arrays. That is, when you assign an array to a new variable, it copies the array and the values it contains. 배열의 참조를 생성하기 위해서는 포인터를 사용할 수 있다.To create a reference to an array, you can use pointers.package mainimport "fmt"func main()..
2024.06.14 -
[ React Native ] 요즘은 다 이거써요, Webview를 이용한 통신
React Native 는 React 를 기반으로 Mobile App을 만들수 있는 프레임 워크이다. React native 를 이용하면 하나의 코드베이스로 안드로이드, ios 모두를 지원하는 앱 (하이브리드앱) 을 만들 수있는데. 이는 개발 생산성 관점에서 볼 때 큰 이점으로 작용한다. React Native 를 더 강력하게 하는 기술 "Webview" 이러한 하이브리드 앱의 강점을 한층 더 업그레이드 할 수 있는 기술이 있는데, 바로 Webview 라는 기술이다 Webveiw 를 이용하면 어플리케이션 내부에 인터넷 브라우저를 띄울 수 있다. 이 둘은 과거 팝업창에서 자주 쓰이던 window.postMessage 라는 메서드를 이용해 통신할 수 있는데 이를 이용해 React native 로 Native..
2024.03.21 -
[Micro Frontend] 대규모 서비스를 효과적으로 관리하는 마이크로 프론트엔드 아키텍쳐
마이크로 프론트엔드? 마이크로 프론트엔드는 전체적인 웹 애플리케이션을 여러 개의 작은 독립적인 프론트엔드 애플리케이션으로 분할하는 아키텍처 패턴이다. 마치 MSA (Micro service architecture) 의 프론트엔드 판이라고 볼 수 있는데, 각 서비스를 분할해 관리함으로써 '독립적인 개발과 배포' , '기술 스택의 다양성' , '유지보수 용이성', '스케일링 용이성', '재사용성과 통합' 에서의 이점을 가진다 런타임 통합 vs 빌드타임 통합 마이크로 프론트엔드 아키텍쳐에서는 개별의 어플리케이션이 통합되는 시점에 따라 '런타임 통합' 과 '빌드타임 통합' 으로 나눠 볼 수 있다. 각각의 장/단점을 비교해보자면 런타임 통합 빌드타임 통합 구현 난이도 상대적으로 높음 상대적으로 낮음 배포 효율성 ..
2024.03.20 -
React Native / Flutter 비교
React Native와 Flutter는 둘 다 인기 있는 모바일 앱 개발 플랫폼으로, 개발자들 사이에서 논란의 여지가 있는 두 가지 선택지이다. 비교 React Native Flutter 언어 Javascript Dart 메인테이너 Meta (Facebook) Google 진입장벽 상대적으로 낮음 상대적으로 높음 성능 상대적으로 낮음 상대적으로 높음 장점 React Native 낮은 진입장벽 React Native는 JavaScript를 사용하여 개발되며, 웹 개발자라면 당연하게도 JavaScript에 익숙하다. 이는 새로 학습하는 입장에서 React Native로 앱을 개발하는 데 낮은 진입 장벽으로 작용한다 커뮤니티 / 예제 React Native는 Facebook에 의해 개발되었으며, 진입장벽이 ..
2024.03.15