목록전체 글 (14)
구구
일단 앱을 만들면서 모르는 걸 하나하나 찾자니 진짜 맨땅에 헤딩이기는 한데 그래도 재밌다. @.@ 채팅창을 만들기 위해서 방법 검색 1. 채팅창 xml (대화내용이 올라갈 부분 리사이클러뷰 추가) 2. 어댑터 작성 (리사이클러뷰 사용해서 대화 내용 표시) 3. 대화 메시지 데이터 모델 (이름, 보낸 사람, 시간) 4. 채팅창 액티비티 작성 (보내기 버튼 리스너, 어댑터 연결, 리사이클러뷰 레이아웃 매니저) import androidx.recyclerview.widget.LinearLayoutManager val recyclerView = findViewById(R.id.recyclerView) val layoutManager = LinearLayoutManager(this) recyclerView.lay..

/ 태그를 구분짓는 특성 바디 영역에 들어가는 애들만 아래처럼 두 가지로 나눌 수 있다. 1. 구획을 나누는 태그 ( 레이아웃 / 아이템을 담는 용도로 / 컨테이너의 역할 ) : 단독으로 사용했을 때에는 눈에 안 보임. 2. 그 자체로 요소인 태그 ( 버튼 / 텍스트 입력창 같은 거 ) : 단독으로 사용했을 때 눈으로 확인할 수 있음. / 블록과 인라인 태그가 정의될 때 블록인지 인라인인지 정해져있다. 후에 CSS를 통해서 형태를 바꿀 수 있다. 1. 블록Block 블록 레벨 요소는 언제나 새로운 줄에서 시작하고, 좌우 양쪽으로 최대한 늘어나 가능한 모든 너비를 차지함. 가로 길이 - 부모가 허용하는 최대까지 차지한다는 뜻임. 상자를 아래로 쌓는 것. 2. 인라인Inline 줄의 어느 곳에서나 시작할 수..
스튜디오 업데이트 이후 프로젝트를 불러오는데 자꾸 튕기고 꺼지고 해서 열심히 찾아본 결과 다양한 방법이 있었는데. 1. 다시 깔기 2. Invalidate Caches 3. github 다시 연결하기 등등 해보다가 무슨 오류 메시지를 보기도 전에 자꾸 튕기니까 한번 켜지고 후다닥 업데이트 체크를 해보았더니 gradle을 업데이트 할 수 있었다. 4. 그래들 업데이트하기 근데 여기서 그래들 버전이 가장 최신으로 업데이트가 안 되는 거다. 그래서 찾아보니 그럼 한 단계씩만 해보라고. 그래서 가장 최신꺼 말고 지금꺼에서 한단계만 높여보니까 됐다! 그 후엔 바로 최신으로 업데이트가 되길래 전부 업뎃. 그런데도 여전히 자꾸 튕겼다! xml도 디자인이 안 보이고! 그래서 새로운 프로젝트를 만들어서 이것저것 해보니까..

실무에서 클린 코드의 의의 = 유지보수 시간의 단축 시간 = 자원 = 돈 클린 코드 != 짧은 코드 == 원하는 로직을 빠르게 찾을 수 있는 코드 코드에 살을 붙일 때마다 함정에 빠지기 쉽다. 하나의 목적인 코드가 흩뿌려져 있다. (응집도) 하나의 함수가 여러 가지 일을 하고 있다. (단일책임) -> 세부 구현을 모두 읽어야 함수의 역할을 알 수 있게 된다. 함수의 세부구현 단계가 제각각이다. (추상화) 응집도 무엇을 뭉쳐야 하는가? -> 당장 몰라도 되는 디테일 뭉치면 안되는가? -> 코드 파악에 필수적인 핵심 정보 (버튼을 눌렀을 때 무슨 액션이 취해지는가? 같은) 읽기 좋게 응집할 수 있는법 남겨도 될 핵심 데이터와 세부 구현을 나눠보기 ex) 핵심 : 팝업 버튼 클릭 시 액션, 제목, 내용 세부구..
function executePayment(paymentType){ if(paymentTpye === "KAKAO_PAYMENT"){ return "카카오 결제" } else if(paymentType === "NAVER_PAYMENT"){ return "네이버 결제" } } 조건이 많아질 수록 복잡 > 매핑 관계 만들어두기 const paymentMap = { "KAKAO_PAYMENT":"카카오 결제" "NAVER_PAYMENT":"네이버 결제" } function executePayment(paymentType){ return paymentMap[paymentType]; } 결제수단을 추가해도 비즈니스 로직에 해당하는 부분에 별다른 추가가 없다. + 댓글 return paymentMap[paymen..

□ CSR은 SEO가 좋지 않다 -> 많은 크롤러들이 자바스크립트를 지원하지 않기 떄문에. □ SSR with Hydration : 첫 웹 페이지 렌더는 SSR 로 그 이후부터 전달된 모든 페이지는 CSR 로 이뤄진다. □ Pre-rendering : 빌드 타임에 모든 HTML을 렌더링한다. (Gatsby) □ SSR Streaming : 브라우저가 페이지 렌더링을 서버 응답이 끝나기 전에 시작할 수 있도록 렌더링에 필요한 데이터를 청크로 쪼개서 내려주는 것. □ Progessive Hydraiton : Hydration을 수행하지만 한 번에 하지 않고 필요한 부분만 점진적으로 하는 것.페이지가 로드되면 나머지 어플리케이션을 모두 로드하는 full hydration과 달리 상황/유저의 인터랙션에 따라 필..

□ 로그인 할 때 아이디 적어야 하는데 제한을 어떻게 걸어주지 □ 인풋타입으로 글자수, 안에 들어가는 글자 유형 다 조절할 수 있나 글자 수 제한하기 maxLength android:maxLength="10" 속성값을 구경하다보니 maxEms가 눈에 띄었다 설정한 정수값만큼 글자수를 제한하고 layout_witdh 가 wrap_content 일 경우에만 쓰인다.

나는 Notion을 잘 사용하고 있는 사용자로 속성에 수식을 많이 사용하는데 하다보면 늘 똑같은 불편한 점이 있었다. 수식을 입력하는 부분인 상단이 아니라 하단을 기준으로 창이 늘어났다가 줄어들었다가 하는 것. 자주 쓰다 보니까 늘 거슬리고 그래서 노션에 이메일을 넣었다! 이런 메일을 보내보는 건 처음이라 열심히 번역기 돌리고 메일 양식 찾아보고 구구절절... ㅎㅎ.. 혹시 이걸 설정할 수 있는 옵션이 있는데 내가 모르는 거라면 알려줄 수 있냐고도 덧붙였다. 있는 기능인데 내가 이렇게 메일 보낸 거면 어? 할 수도 있으니까!! 내가 제안한 내용은 간단했다. 팝업창의 창 변경 기준이 하단이 아니라 상단으로 바뀌는 것. 그럼 입력창의 위치가 변하지 않아서 불편하지 않을 테니까. ✈️ 그리고 답신이 왔다. 내..