안녕하세요. Sell POD팀에서 판매자 대상으로 업무를 하고 있는 개발자 박명훈입니다. 오늘은 좀 더 기술적인 글을 작성해보려고 합니다. 최근 만든 서비스 중 하나는 지마켓과 옥션의 판매자 플랫픔 ESM+에서 접속 중인 사용자를 확인하고 다른 사용자를 로그아웃 시킬 수 있는 기능을 개발하였습니다. 다른 시니어 개발자 분 한분과 함께 개발을 했는데, 저는 서비스에서 사용하는 API을 주로 개발하였습니다. 이 기능을 통해서 현재 접속하고 있는 로그인 유저를 확인할 수 있고, 중복 로그인이 발생하였는지를 알 수 있고 이를 통해 다른 기능을 제공할 수 있습니다. 개발 고민최초 해당 업무를 받았을 때, 어떤 식으로 개발을 해야할 지 많은 고민을 했습니다. 당연히 로그인에 대한 로직이고, 해당 데이터 접근이 많고..
시작하기 앞서...Application을 개발하다 보면 기능이 점점 복잡해지고 데이터가 쌓이면서, 처음과 다른 성능 저하가 발생하게 된다.서버의 사양을 올리거나, 서버의 댓수를 추가하면 전체적인 성능은 올라가지만 그만큼의 비용이 발생하게 된다. 자본이 무한하다면 상관없지만, 물리적 증설은 최후의 보루로 남겨두고 Application 적인 측면에서 성능개선을 꾀할 수 있는 두 가지 방법을 소개하도록 하겠다. Cache의 정의Cache란? - feat Wikipedia캐시(cache, 문화어: 캐쉬, 고속 완충기, 고속 완충 기억기)는컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시..
들어가며 안녕하세요 BXP Pod에서 iOS 개발을 맡고 있는 강수진입니다. 작년 6월에 입사한 저는 반년이 조금 넘는 시간 동안 "치약" 프로젝트에 참여해왔는데요! 프로젝트가 끝나가는 시점, 저는 어떤 일을 했으며, 무엇을 배우고 느꼈는지 등을 시간 순으로 공유하려고 합니다. (긴 글 주의!) 개인 블로그에 작성할법한 너무 개인적 회고인가.. 도 싶지만, 신입 개발자는 어떻게 일을 하고 배워나가는지, 여러분들의 첫 입사를 떠올리며 가볍게 읽어주셨으면 좋겠습니다. :) 6월 저는 6월 말에 이베이 코리아에 iOS 개발자로 합류했습니다. 처음 자리에 놓여있던 풍선이 가장 기억에 남네요 ㅎㅎ (이제 풍선에 붙어있던 스티커는 제 노트북으로 옮겨왔습니다) 경구님께서 보내 주신 입사 축하 메일도 확인할 수 있습니..
안녕하세요! BXP POD에서 iOS 개발자로 일하고 있는 강수진입니다. 🙋🏻♀️개발 과정에서 아래와 같이 디바이스에 따라 아이템 UI 일부가 잘려 보이는 이슈가 있었습니다.결론부터 말씀드리면 기기에 따른 해상도 때문에 생기는 문제였는데요, 지금부터 깨달음의 내용과 해결 과정을 공유해보고자 합니다.요구 사항CollectionView의 left와 right margin은 16itemSpacing은 8아이템 width는 각각 남는 영역의 1/2로 가변적요구 사항은 위와 같았고, 이에 맞게 열심히 구현을 했습니다.👩🏻🏭🛠문제 사항하지만 곧 QA 하는 과정에서 이슈가 들어오게 됩니다."아이템 corner 쪽이 각져서 잘려보이고, 아이템 사이 간격은 8.3처럼 보여요!"네?? 좀 더 자세히 살펴봅시..
HashMap은 매우 유용한 자료형(?)이다. Java에서 HashMap과 HashTable의 비교하는 글은 인터넷에 많이 있으므로 따로 정리하지 않겠다. HashMap은 key 와 value로 구성되는데 Map이라는 자료구조를 사용한다. Map은 key와 value을 연결하는 개념의 자료구조이다. 아래과 같은 식이다. "korea" --> "seoul" "japan" --> "tokyo" Java에서 Map은 interface이다. 즉 먼가 내부적으로 구현되어있는 것이 아니고 역활과 기능을 정리한 개념이라는 뜻이다. https://docs.oracle.com/javase/8/docs/api/java/util/Map.html Map은 하나의 key에 하나의 value가 mapping된다. 그외에도 여러가..
이번 포스팅에서는 Java의 Generic의 개념을 한번 다뤄 보겠습니다."제네릭"은 "구체적인 타입에 대한 정보를 타입 정의 시점이 아닌 타입의 인스턴스화 시점에 전달함으로써 하나의 타입으로 여러 가지 타입을 표현하는 프로그래밍 기법"을 일반적으로 지칭하는 용어입니다.Java의 Generic은 이러한 제네릭에 대한 Java의 구현체라고 할 수 있겠습니다.Java Generic의 주요 기능은 다양한 타입의 객체를 다루는 메서드나 클래스에 대해서 컴파일 타임 타입 체크를 가능하게 하여 타입 안정성을 높이고 형 변환의 번거로움을 줄여주는 것입니다. 위에 적은 문장이 Java Generic의 아주 주요한 개념이라고 할 수 있는데요, 이 문장을 제네릭이 없는 상황과 있는 상황 두가지 예시를 통해 상세히 들여다보..
안녕하세요. PXC의 Sell POD에서 Seller 업무를 진행하고 있는 25살 신입 개발자. 박명훈이라고 합니다. 입사한 지 막 6개월이 되어가는 식어가는 신입입니다. 부족한 부분도 많고, 알고 있는 부분보다 알아가야 하는 부분이 더 많지만 매일매일 발전하기 위해 노력하고 있습니다. 간단하게 회사에 들어와서 느낀 부분, 그리고 이베이에서는 어떤 일과 개발 문화를 가졌는지를 제가 보고 느낀 부분을 적으며 혹시 이베이코리아에 관심이 있는 분에게 도움이 되었으면 좋겠습니다. 간단한 소개. Sell POD팀 중 Seller 팀은 판매자 대상으로 업무를 하며, ESM이라고 하는 플랫폼을 운영 및 개발하고 있습니다. 이 ESM은 판매자들이 물건을 쉽게 판매할 수 있도록, 물건을 올리면 옥션과 지마켓에 동시에 물..
안녕하세요! BXP POD에서 iOS 개발자로 일하고 있는 강수진입니다. 🙋🏻♀️며칠 전 저희 슬랙 방에서 String, String?, String! 에 대한 팝업 퀴즈가 있었습니다."흠..다 비슷하게 생겨서 뭐가 뭔지.."라고 생각하시는 분들이 있다면 잘 찾아오셨어요! 이 글은 바로 저렇게 생각하던 제가 깨달음을 얻는 과정을 담고 있기 때문이죠.그럼 지금부터 저와 함께 Swift에서 String String? String! 의 차이에 대해 알아보러 가실까요? 퀴즈가 쏘아 올린 작은 공.. 🏐 평화로운 어느 오후 iOS 워킹 그룹에 슬랙이 울렸습니다. 여러분도 한번 생각해보세요! 3..2..1..!어떤 생각이 떠올랐나요? 우선 제 동료분들의 대답을 살펴볼게요. 저의 대답은 이거였습니다. 여러..