인기글
-
[Flutter] 플러터 종속성 주입 (InheritedWidgets/ get_it / provider)
개발을 하다보면 들어갈 데이터는 다르지만 UI가 같은 객체를 서로 다른 클래스에 넣어야할 때가 있다. 클래스마다 데이터만 다른 같은 객체를 일일히 추가하다보면 코드가 길어지고 수정사항이 생길 때는 객체별로 코드를 수정해야하기 때문에 매우 번거로워 진다. 이러한 불편함을 해결하기 위해 Dependency Injection (종속성 주입) 기술이 필요하다. DI는 코드의 재사용성을 높이는 데 사용되는 기술이며 해당 객체를 클래스마다 인스턴스화 즉 생성하는 대신 클래스에 종속 객체를 주입한다. 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 결국 인스턴스는 객체와 같은 의미이지만, 객체는 모든 인스턴스를 대표하는 포괄적인 의미를..
-
[클린코드] 4. 주석 - 요약 및 인사이트
인사이트 정리 주석은 코드가 아니라고 생각해서 대충 입력하고 남겨두는 경우가 많았는데, 나같은 이런 개발자들이 많이 때문에 더욱이 주석을 사용하면 안된다는 것을 알게 되었다. 주석보다는 코드로 최대한 의미를 전달하도록 하고, 소스코드 관리 시스템로 형상관리를 해보자! 요약 - 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. - 코드로 의도를 표현할 방법은 없을까? - 코드는 변화하고 진화한다. 주석이 언제나 코드를 따라가지는 않는다. - 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 1. 주석은 나쁜 코드를 보완하지 못한다. - 표현력이 풍부하고 깔끔하며 주석이 거의 없는 코드가, 복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다. 2. 코드로 의도를..
-
[ReactJS] Module이란 무엇일까?
프론트엔드 개발 올인원 패키지 with React Online. Webpack 강의 내용을 기반으로 정리한 내용입니다. Module이란 Module은 프로그램을 구성하는 내부의 코드가 기능별로 나뉘어져있는 형태를 의미함 1) 한 파일에 쓰여진 코드를 여러 파일로 관리할 수 있으며 2) 다른 모듈로부터 특정 기능을 가져오거나, 다른 모듈이 특정 기능을 참조할 수 있게 함 모듈화를 하면 코드 재사용성이 증가하며, 모듈을 기준으로 코드 내용을 구조적으로 확인가능하기 때문에 코드의 관리가 편해진다. 모듈화를 위해서는 키워드, 모듈 시스템, 모듈의 기준이 필요하다. Module의 표준 1. CommonJS (node.js) 2. ESM Module의 키워드 1. 내보내기 - 내보낼 값을 객체 안에 넣고 객체를 통..
-
[Next.js] kakao 인앱 user-agent 감지
1. 문제상황 카카오톡으로 전송된 링크를 인 앱으로 열었을 때 기능이 제대로 동작하지 않은 경우가 있다. 구글 로그인 기능도 마찬가지! 2. 해결방법 강제로 사이트를 외부 브라우저로 열도록 하는 방법도 있지만 안정적인 방법을 찾지 못했다. 사용자가 혼란스러울 경우를 대비해, 카카오톡 인앱 브라우저일 경우 사용자가 구글 로그인을 시도한다면 alert로 안내문구를 띄우기로 했다. 3. 해결 과정 _ 카카오톡 브라우저에 대한 user-agent 감지 - 카카오톡 인앱에는 userAgent에 KAKAOTALK 문구가 포함되어있다. Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0 KAKAOTALK - useEffect에서 navigator 객체를 통..
-
[mysql] mysql 을 이용한 sql 데이터베이스 생성
mysql 을 이용해 성격테스트 타입별 인원수를 저장하기 위한 테이블을 생성했다. 1) test-result 테이블 생성 id를 고유 primary key로 설정했다. CREATE TABLE test_result ( id INT(11) NOT NULL AUTO_INCREMENT, type VARCHAR(10) NOT NULL, count INT(11) DEFAULT 0, PRIMARY KEY(id) ); 2) 테이블 값 추가 INSERT INTO `test_result` (`type`, `count`) VALUES ('\"ISFP\"', '0'); 3) 데이터베이스 생성
-
내가 보려고 정리하는 java 개념 코드 정리
객체 지향 언어에 대해 제대로 공부한 적이 없어 하루동안 java 언어의 개념을 한번 훑어보았습니다. 이 전에 사용한 dart 언어와 비슷한 점이 많아 개념을 이해하기 어렵지 않았습니다. 저는 생활코딩을 보고 공부했습니다 opentutorials.org/course/2517 Java 기본 과정 - 프로그래밍 입문 Java 언어 생활코딩 요약본. opentutorials.org 1) 자료형 표현 문자 (Character) - 작은 따옴표 문자열 (String) - 큰따옴표 System.out.println(1+2); System.out.println("생활코딩"); System.out.println("egoing said \"Welcome programming world\""); 2) 변수 - byte 수..
-
[Flutter] Named Routing을 이용한 Navigation (pushedName / pop / WillPopScope)
해당 링크 내용을 토대로 공부 , 정리했습니다. www.filledstacks.com/post/flutter-navigation-cheatsheet-a-guide-to-named-routing/ Flutter Navigation Cheatsheet - A Guide to Named Routing A simple guide that covers the setup and all navigation scenarios using named routing. www.filledstacks.com - route name 정의 routing_constants.dart const String HomeViewRoute = '/'; const String LoginViewRoute = 'login'; route name을 ..
-
[Flutter] 플러터 버튼 종류 (TextButton / OutlinedButton / ElevatedButton / Icon button)
flutter에서 주로 쓰이는 버튼은 FlatButton, RaisedButton, OutlineButton인데 TextButton, ElevatedButton, OutlinedButton으로 각각 변화되었다. theme 또한 TextButtonTheme, ElevatedButtonTheme, OutlinedButtonTheme으로 바뀌었다. style은 textcolor property 요소를 이용해 글꼴 색상을 지정했던 것과 달리 stylefrom property 내에서 color들을 지정한다. primary , onsurface color가 parameter인 것을 보니 material design적인 요소가 많이 반영되었다는 생각이 들었다. * 버튼 상태별로 버튼 스타일을 지정하고 싶다면? htt..
최근 게시글
-
[AI 평가] AI 모델 평가 기준 정리AI 2026.08.24 19:00
음성 AI 모델을 평가하며 리서치한 기준을 기록합니다. (26.08.26 업데이트) 1-1. Freeform Red Team AI 평가에서 정해진 테스트 시나리오나 질문 목록 없이, 평가자가 자유롭게 다양한 방식으로 모델을 공격·검증하는 평가 방식개념: 모델의 취약점, 오류, 안전성 문제를 찾기 위해 평가자가 자유롭게 프롬프트를 구성하는 레드팀 평가핵심 요소:정해진 테스트 케이스에 제한되지 않음예상치 못한 질문·상황을 시도모델의 환각, 지시 위반, 안전장치 우회, 일관성 저하, 편향 등을 탐색발견한 실패 사례를 바탕으로 추가 공격을 이어감예시:모델에게 처음에는 정상적인 질문을 한 뒤, 점차 표현을 바꾸거나 맥락을 추가하면서 금지된 정보를 제공하도록 유도하고, 모델이 어느 지점에서 안전 원칙을 위반하는지..
-
검색기능 개선개념 2022.12.08 20:57
테크니컬 SEO 메타 키워드 태그는 검색 엔진에서 제외 웹페이지 속도, 프로토콜 준수, 모바일 최적화 등을 기준으로 점수를 매김 웹 사이트 속도 경쟁 웹 사이트보다 속도가 더 빨라야함 타이틀 태그 가장 중요하고 관련있는 키워드 영문 65자, 한글 32자 내외 각 페이지에 맞는 메타 디스크립션 태그 77자 이내 이미지 정보 alt 검색엔진에 전달 상위 랭킹에 큰 영향을 주는 건 아님 오픈 그래프 캐노니컬 태그 타겟고객이 많이 사용하면서 타경쟁사 웹 페이지는 비교적 적게 사용하는 키워드 https://junheedot.tistory.com/27 SEO를 위한 자가 진단 체크리스트 📜 본문은 서적 '트래픽을 쓸어 담는 검색 엔진 최적화'를 읽고 남기는 요약본입니다. 더 자세한 정보를 얻기 원하신다면 해당 서적..
-
Github 민감한 커밋 히스토리 삭제 (git ignore, git filter-branch)기타 2022.07.14 00:21
개발을 하다보면 git에 올리고 않지 않거나 올리면 안되는 민감한 파일들이 있는데 이 파일들은 .gitignore 설정파일에 추가하면 자동으로 git 버전 관리에서 제외된다. 기존 프로젝트에 git ignore 설정하기 프로젝트를 시작할 때 git ignore을 설정하면 제일 좋지만, 이미 프로젝트가 진행되었을 경우 기존 프로젝트에 .gitignore를 적용하는 방법도 있다. 1) .gitnore 파일에 숨기고자 하는 파일명을 추가한다. 2) 원격 저장소에 있는 파일들을 삭제하고, git ignore이 적용된 로컬 파일을 다시 커밋한다. git rm -r --cached . git add . git commit -m ".gitignore 적용하기" 3) 푸쉬한다. 민감한 정보가 담긴 커밋 내역 삭제하기 ..
-
상반기 데브이벤트 프로젝트 회고 (with UPF)회고 2022.06.25 17:08
0. 데브이벤트 웹 구경하기 https://dev-event.vercel.app/events Dev Event - 개발자 행사는 모두 데브이벤트 웹에서! 개발자를 위한 {웨비나, 컨퍼런스, 해커톤, 네트워킹} 소식을 알려드립니다. dev-event.vercel.app 1. 데브이벤트 프로젝트에 합류 2022년 상반기, 데브이벤트 저장소를 고도화하는 사이드 프로젝트에 웹 프론트엔드 개발 , 서비스 기획자로 참여하게 되었습니다! 개발자로 일한지 7개월, 회사에서 혼자 개발을 하다보니 점점 익숙한 기술, 방식에 안주하려는 제 모습이 보였어요.🤦 2년차 개발자로 뒤쳐지지 않기 위해, 또 새로운 기술을 자유롭게 써서 개발해보고 싶다는 생각으로 사이드 프로젝트를 구하던 중 데브이벤트 프로젝트라는 감사한 기회를 얻게..