본문 바로가기

전체

(69)
[ mysql ] select insert 문법 + duplicate key 기본키 중복 해결 안녕하세요 코띵입니다 :D 프로젝트를 진행하던 중에 select insert 문법을 써야돼서 사용하려는데, 기본키에 auto_increment 가 적용되어 있지 않아서 문제가 발생했습니다. 그래서 이를 해결하는 방법을 찾아서 포스팅해보려고 합니다. 하나의 테이블에서 select 하여 어떤 테이블로 insert 하고 싶을 경우에 아래와 같이 실행하면 됩니다. insert into 테이블A ( 컬럼명1, 컬럼명2, 컬럼명3 ) select 컬럼명4, 컬럼명5, 컬럼명6 from 테이블B ( 이 때, insert 와 select 사이의 컬럼 개수는 동일해야합니다. ) 저 구문을 실행할 때 키를 포함하고 있지 않으면 문제될 것은 없습니다. 하지만 컬럼값의 기본키를 반드시 넣어야하는 경우라면 기본키 값을 증가시키..
[ Java ] 객체지향 디자인 패턴 - 싱글톤 패턴(singleton pattern) 싱글톤 패턴은 프로세스 내에서 클래스 객체가 딱 하나만 만들어져야 할 때 사용하는 패턴이다. 사용자가 앱을 사용하는데 다크모드로 설정했을 경우, 다른 페이지로 이동하더라도 계속해서 다크모드로 유지되어 있어야 한다. 이 때, 설정하는 객체는 반드시 같은 것을 사용해야 한다. 그러기 위해서는 객체가 하나만 만들어지도록 해야한다. 간단하게 코드로 구현해보면 다음과 같다. | Settings.java public class Settings { private Settings() {} // default 객체 생성 불가능하도록 설정 private static Settings settings = null; // Point !! public static Settings getInstance() { if(settings..
[ Android ] BottomNavigation Icon 설정 BottomNavigation에서 기본적으로 menu에 icon 이미지만 넣었을 경우, 클릭했을 때 아이콘의 컬러가 기본 테마색으로 변경된다. (커스텀으로 컬러 변경 가능) 그렇다면 클릭했을 때, 원하는 이미지로 변경하기 위해서는 어떻게 해야할까? 아래와 같이 selector를 사용해서 구현하면 된다. selector_menu_icon.xml 보통은 아이콘 비활성하/활성화 구조이기 때문에 클릭 전에는 비활성화 아이콘을, 클릭 후에는 활설화된 아이콘이 되도록 설정한다. menu.xml 그 다음 중요한 부분인데, 아이콘이 테마색으로 변경되는 것을 막기위해서는 Tint를 초기화 해야한다. bottomNavigationView.setItemIconTintList(null); 그 외 title 숨기기 ( 에 추가..
[ Android ] 배경색 그라데이션 효과 퍼블리싱을 하다보면 그라데이션 효과를 주고싶은 경우가 생긴다. 파일을 생성하여 적용만 하면 되기때문에 간단하다. 아래와 같이 xml파일을 생성한다. bg_gradient.xml - shape: 모양. shape="oval" 가능 - angle: 회전 각도 나타냄. 0, 90, 180, 270 가능 - startColor: 시작 컬러 - centerColor: 가운데 컬러 - endColor: 끝 컬러 적용하고 싶은 곳에 배경색으로 적용하면 된다. android:background="@drawable/gradient"​ 보통 centerColor는 잘 사용하지 않는다. startColor와 endColor만 적용해도 자연스러운 그라데이션이 그려진다.
[ Android ] Cannot call this method in a scroll callback W/RecyclerView: Cannot call this method in a scroll callback. 리싸이클러뷰를 사용하다보면 다음과 같은 메세지를 발견할 수 있다. 스크롤을 할 때마다 뜨는데, 앱이 죽지는 않는다. 하지만 다음과 같은 메세지는 왜뜰까? Cannot call this method in a scroll callback. Scroll callbacks mightbe run during a measure & layout pass where you cannot change theRecyclerView data. Any method call that might change the structureof the RecyclerView or the adapter contents should ..
XSS (Cross Site Script) 공격 방어 웹 페이지를 만들 때 주의해야 할 점은 보안이다. 보안 취약한 사이트의 경우 공격을 받게 되는데 공격들 중 하나가 바로 XSS 이다. 이 공격은 서버로 보내는 입력값에 자바스크립트를 보내서 악의적인 스크립트를 실행시켜서 사용자의 정보를 빼내는 것이다. 정보는 사용자 개인적은 정보나, 쿠키 같은 것들이 해당된다. 게시글을 등록할 때 스크립트문을 넣어서 등록한 후, 게시글을 조회해서 정보를 뺏어오거나 이메일이나 메세지를 상대방에게 보내는 입력값에 스크립트문을 넣어서 정보를 뺏어오거나 하는 것이 해당된다. 자신의 사이트가 XSS 를 방어하고 있는지 확인하는 방법은 간단하다. 임의의 입력창에 라고 입력하고 저장한 후 상세화면으로 들어갔을때 해당 코드가 실행되는지 확인하면 간단하다. 데이터를 저장할 때 처리를 해..
[ Android ] 소프트스퀘어드를 마치며 소프트스퀘어드( softsquared ) 는 외주연계 프로그래밍 교육과정을 진행하는 곳이다. 아는 지인을 통해 알게돼서 신청을 하게되었다. 내가 선택한 분야는 안드로이드였다. 눈에 띄는 혜택이 2개가 있었는데, 하나는 바로 알 수 있듯이 '외주연계' 를 통해 돈을 벌 수 있다는 것이었다. 그리고 또 하나는 '메이커스(MAKE US)' 라는 앱런칭 동아리 서류 면접 통과이다. 앱을 배우고 싶고 제대로 해보고 싶다는 마음이 컸지만 이런 혜택에 솔깃한 것도 사실이다. 그래서 나는 망설임없이 해보기로 했다. 내돈주고 처음 학원(?)을 다녀봤다. 사실 나는 직장인이다. 심지어 분야는 웹이다. 딱히 내가 웹을 하고 싶어서 하게 됐다기 보다는 어쩌다보니 웹팀으로 들어오게 되어 하고 있다고 보는 게 맞겠다. 어떻게 보..
[ Android ] android java.lang.NoSuchMethodError: com.intellij.ide.plugins.PluginManagerCore.loadDescriptors() android studio 를 최신 4.1 버전으로 업데이트 하기 위해서 앱을 삭제하고 설치한 후에 앱을 실행하는데 다음과 같은 에러가 발생했다. 해결법을 찾아보니 간단하였다. C:\Users\{user}\.AndroidStudio4.0\config\plugins 경로로 이동해서 plugins 안에 있는 것을 삭제해주면 된다. 다시 실행하면 정상적으로 실행되는 것을 볼 수 있다.

반응형