번개장터

번개장터

개발팀 리뷰

위 내용은 번개장터 전 • 현 재직자의 응답 결과입니다.

기술 스택

언어

javascript

typescript

프론트엔드

React

html

css

데브옵스

Angular

Redux

MobX

재직자가 작성한 글

profile picture

잘하고싶은데데엔

데이터엔지니어

책추천, 더 나은 프로그래머 되는 법

이제 막 사회에 뛰어는 사회초년생이거나, 업무를 하면서 자괴감에 빠지는 신입이거나, '내가 지금 잘하고 있는게 맞는건가?' 싶은 주니어이거나,  업무에 치여 성장에 대한 리프레쉬가 필요한 시니어이거나  앞으로 어떻게 더 성장해야할까 고민하는 모든 개발자들에게 굉장히 유용한 책입니다. 이 책은 단순히 코드 스킬향상으로 좋은 프로그래머가 되는것 뿐만 아니라 알잘딱깔쎈 하게 일하는 방식과 마인드 세팅, 그리고 의사소통까지 더 나은 개발자가 되기 위해 한번쯤은 고민해봤을법한 유익한 내용들을 담고 있습니다. 저도 신입때 일하던 모습들이 스쳐지나가면서 공감되는 부분들도 많았는데요. 아직도 깨지고 부딪히며 배우고 있지만, 이 책을 덕분에 더 일찍 깨달은 것이 많았습니다. 뼈 때리는 조언과 따뜻한 위로를 해줄 개발자 선배를 찾는다면 이 책을 가볍게 추천드립니다! https://pearlluck.tistory.com/807

profile picture

사호진

프로덕트 매니저

모달 UI의 의미와 선택 방법

모달(modal) UI는 사용자의 이목을 끌기 위해 사용하는 화면 전환 기법을 의미합니다. 그 안에는 팝업, 바텀 시트, 스낵바 등 여러 가지가 존재해, 어떤 UI를 어떤 상황에 적용하면 좋을지 헷갈릴 때가 있는데요. 저 역시 주니어 PM으로서 UXUI 디자인 용어는 알지만 사용하는 맥락을 알기 쉽지 않았는데 잘 정리된 글이 있어 가져왔습니다. 1. 팝업(Pop-up) * Popup, dialog, alert 등 다양한 이름으로 불림 * 주로 2가지 상황에 사용 * 앱/기기상태와 관련된 중요한 정보 전달 * 사용자의 결정 필요(정보 입력, 승인 등) * 팝업 사용시 주의 사항 * 사용을 최소화해야 * 앱의 모든 기능 비활성되기에 의도적으로 사용자를 방해하여 피로감을 줄 수 있음 * 간단한 태스크를 제공해야 함 * 팝업 타이틀/버튼은 상황을 간결하게 설명 2. 바텀 시트(Bottom Sheet) * 주로 2가지 상황에 사용 * 기존 화면과 관련 있는 콘텐츠를 제공할 때 * 기존 컨텍스트에서 벗어나지 않고 관련된 작업을 할 수 있어 더 빠르게 프로세스가 진행되는 느낌 전달 * 다양한 메뉴를 제공할 때 * 화면 이동 발생하지 않아 유저에게 신속하고 간편한 느낌 전달 * 바텀시트 구성요소: Scrim / Handlebar / Header / Contents / Button * Scrim의 여부에 따라 Modal과 Non-Modal로 구분 * 유저가 기존화면을 함께 사용할 땐 Non-Modal 타입 선택 * Handlebar는 사용자에게 바텀 시트를 확장할 수 있음을 알려줌 * 있는 경우엔 제스처로 확장과 Pull-to-dismiss가 필수적! 3. 스낵바(Snackbar) * snackbar, toast로 불림 * 사용자가 수행한 액션에 대한 피드백을 줄 때 사용 * 별도의 액션을 제공하는 것도 가능 * 사용 시에는 위치를 항상 고려하고 제한 시간 이후에 사라지기에 짧고 간결하게 표시한다. https://yozm.wishket.com/magazine/detail/1272/

재직자가 좋아한 글

?️ Java Redis직렬화 삼총사: Json, String, JDK  |  이번 포스팅에서는 Java에서 Redis 직렬화 시 자주 사용하는 방법들을 비교하고 각 방식의 특징과 예제를 설명합니다.   JdkSerializationRedisSerializer JDK 기본 직렬화는 Java 표준 라이브러리에서 제공하는 java.io.Serializable 인터페이스를 사용하여 객체를 바이트 스트림으로 변환하는 방식입니다. 이 방식은 사용하기 편리하지만, 다소 무거운 오버헤드가 있을 수 있습니다.    장점: * Java 내장 기능이라 별도의 라이브러리 필요 없음 * 복잡한 객체 구조도 쉽게 직렬화 가능 단점: * 직렬화된 데이터가 상대적으로 큼 * 직렬화/역직렬화 과정이 비교적 느림 public class RedisConfig { public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setValueSerializer(new JdkSerializationRedisSerializer()); // 기타 설정 return template; } }  저장되는 형태 127.0.0.1:6379> GET user:2 "\xac\xed\x00\x05sr\x00\x04User...\x78\x6f"   StringRedisSerializer String 직렬화는 데이터를 문자열 형태로 저장하는 방식입니다. 이 방식은 간단하고 가볍기 때문에 기본적인 키-값 저장에 적합합니다. 직렬화 과정 없이 단순히 데이터를 문자열로 변환하여 Redis에 저장합니다.   장점: * 속도가 빠르고 갑벼움 * 데이터가 사람이 읽을 수 있어 디버깅이 쉬움 단점: * 객체 직렬화에 비해 유연성이 떨어짐 * 복잡한 데이터 구조에는 적합하지 않음  import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.core.RedisTemplate; public class RedisConfig { public RedisTemplate<String, String> redisTemplate() { RedisTemplate<String, String> template = new RedisTemplate<>(); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new StringRedisSerializer()); // 기타 설정 return template; } } 저장되는 형태 127.0.0.1:6379> GET message "Hello, World!"   GenericJackson2JsonRedisSerializer JSON 직렬화는 객체를 JSON 문자열로 변환하는 방식입니다. JSON은 가볍고 사람이 읽을 수 있으며 다양한 언어와 호환이 잘 됩니다. Jackson 라이브러리 등을 활용해 손쉽게 구현할 수 있습니다.   장점: * 데이터 포맷이 가볍고 사람이 읽기 쉬움 * 다양한 언어 간 호환성 우수 * 객체 타입을 손쉽게 복원 가능 단점: * 데이터 크기가 텍스트 기반이라 다소 클 수 있음 * 이진 데이터보다는 느림 import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.core.RedisTemplate; public class RedisConfig { public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // 기타 설정 return template; } } 저장되는 형태 127.0.0.1:6379> GET user:1 "{\"@class\":\"com.example.User\",\"name\":\"Alice\",\"age\":25}"   케이스별 선택 * 여러 언어와의 호환성: GenericJackson2JsonRedisSerializer 추천 * 같은 언어(Java) 간 데이터 공유: GenericJackson2JsonRedisSerializer 또는 JdkSerializationRedisSerializer 추천 * 단순 데이터: StringRedisSerializer 추천 * 복잡한 객체 또는 Java 전용 데이터: JdkSerializationRedisSerializer (단, 모든 서비스가 Java인 경우에만)   저 같은 경우는 서로 다른 서비스에서 동일한 Redis 클러스터를 사용하고 있었습니다. 동일한 프로젝트가 아니었기에 JdkSerializationRedisSerializer은 사용할 수 없었고, 간단한 데이터도 아니었기에 String을 선택하기에도 어려웠습니다.   결국 GenericJackson2JsonRedisSerializer를 선택하였는데, 기본적으로 포함되는 @class 속성은 데이터의 타입 정보를 제공하지만, 다른 서비스에서 필요하지 않았습니다. 이를 비활성화하려면 ObjectMapper 설정을 통해 커스터마이징할 수 있습니다.

좋아요 66 저장 128

thumbnail