일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 막내의 막무가내
- 막내의막무가내 일상
- 막내의막무가내 목표 및 회고
- 막내의막무가내 rxjava
- 막내의막무가내 플러터 flutter
- 막무가내
- 막내의막무가내 플러터
- 막내의막무가내 알고리즘
- 주택가 잠실새내
- 안드로이드
- 막내의막무가내 안드로이드 코틀린
- 부스트코스
- 안드로이드 sunflower
- 부스트코스에이스
- 막내의막무가내 프로그래밍
- 막내의막무가내 코볼 COBOL
- 주엽역 생활맥주
- 안드로이드 Sunflower 스터디
- 막내의막무가내 SQL
- 막내의막무가내 안드로이드
- 막내의막무가내 코틀린 안드로이드
- 프로그래머스 알고리즘
- 막내의막무가내
- flutter network call
- 2022년 6월 일상
- 막내의 막무가내 알고리즘
- 프래그먼트
- 막내의막무가내 안드로이드 에러 해결
- Fragment
- 막내의막무가내 코틀린
- Today
- Total
목록전체 글 (684)
막내의 막무가내 프로그래밍 & 일상
Servlet 라이프 싸이클에 대해 간단하게 정리한 포스팅을 할려고한다. 먼저 라이프사이클은 다음구과 같은 구조와 같다. 이것을 직접 확인해보았다. 다음과 같이 코딩을하고 실행시켜본다. 해당서블릿클래스를 생성해서 메모리에 올린후(생성자) intit메소드가 호출됨을 볼 수 있다. 그리고 service메소드가 호출됨을 알 수 있다. 만약 다시실행키면 다음과같이 service메소드만 호출됨을 볼 수 있다. (두번 다시실행시킨 결과이다.) 만약 init메소드의 구현내용이 바뀌면 해당 객체는 메모리에 사라지므로 destory메소드가 호출된다. init메소드에 @이를 추가하고 저장한 결과이다. 마지막으로 doPost와 doGet방식에 대해도 살짝 알아보겠다. 실행시켜보면 처음에 url로 요청해서(Get방식으로 요청..
1. 3이상 @WebSerblet("/ten") 으로 어노테이션이 되어있는것을 볼 수 있다. URL 맵핑주소이다. 2. 3.0미만 (2점대) 3.0과 다르게 어노테이션이 안되있다. web.xml은 다음과 같이 되있다. 만약 ten으로 url을 http://localhost:8090/exam25/ten 이런식으로 ten이라는 이름으로 url에 요청을 보냈으면 web.xml에서 태그 사이에서 url-pattern에서 해당 ten이라는 이름이있는지 찾고 있으면 ten과 같은 상위태그 에 있는 TenServlet이라는 servlet-name이 같은걸 태그 에서 찾아서 실제 class인 exam이라는 패키지안에있는 exam.TenServlet을 실행시켜주게됩니다. 정리하자면, 1. 요청한 url맵핑과 같은 url..
엘리먼트가 배치되는 방식 - (display:block / inline) 기본적으로 엘리먼트들은 block인지 inline인지 정해져있습니다. 예를들어 , 는 block방식이고 , , 은 inline 방식입니다. block은 말 그대로 벽돌을 쌓듯 아래로 띄워지면서 써지고 inline은 책처럼 쭉쭉 옆으로 글이 써져나가고 최대길이에 도달하면 한줄이 띄워져서 이어써져갑니다. 그러나 이렇게 기존에 정해져있는 방식을 css에 display속성을 설정하여 inline방식을 block방식으로도 변경해줄 수 있습니다. 엘리먼트가 배치되는 방식 (position:static, relative, absolute) 엘리먼트 배치가 순서대로만 위아래로 또는 좌우로 흐르면서 쌓이기만 하면, 다양한 배치를 하기 어렵습니다. ..
#jisu > p:nth-child(2) 는 jisu라는 id를 가진 태그의 두번째 자식이 p태그이면 해당 태그에 css를 적용해달라는 뜻이다.( 만약 첫번쨰자식이 p태그 두번쨰자식이 span 세번째 자식이 p태그이면 적용이 안된다. (두번째 자식이 아니므로) #jisu > p:nth-of-type(2)는 jisu라는 id를 가진 태그 자식들 중에 두번째로 나오는 p태그에 CSS적용을 하는 것이다. nth-child와 차이점으로 자식이 p, span , p여도 세번째 나오는 p가 두번째로 나오는 p태그이므로 css 적용이 된다. 참고로 >자식관계일때만 이게 동작하고 띄어씌기 자손관계일떄는 동작을 안한다고도 한다. 첫번째 단락에 red 색상이 적용됩니다. 단락 선택 첫번째 단락입니다 두번째 단락입니다 세번..
CSS는 똑똑하게 동작하며 우선순위가 있다. 1. 첫번쨰 우선순위 먼저 크게 우선순위를 나누면 inline방식 < internal, external 이다. internal과 external은 뭐가 뒤에 오냐에 따라 우선순위가 그떄그떄 달라진다. (CSS는 기본적으로 만약 똑같은 내용이 있을 경우 뒤에 온 CSS스타일을 적용한다. 예를들어 이렇게 head태그사이에 internal방식과 그 뒤에 external방식이 있다고 치자. 물론 css.css에도 똑같이 internal 스타일처럼 div { color:blue; } 이렇게 되있는데 색만 blue라고 해보자. 그럼 external 방식이 internal방식보다 뒤에 선언되있으므로 external css가 적용되서 div태그사이의 색은 blue가 된다. ..
클라이언트가 서버에 데이터를 요청을 하고 서버로부터 받은 데이터 즉 웹을 통해서 전달된 데이터를 브라우저를 통해 화면에 띄워주게 된다. 여기서 브라우저는 크롬, 익스플로어, 사파리, 파이어폭스 등 여러가지가 있다. 그럼 화면에 띄워주기위한 브라우저의 동작방식이 있을 것이다. 브라우저는 데이터를 해석해주는 파서와 해석한 데이터를 화면에 표현해주는 렌더링 엔진이 있는데 파서로 전달받은 데이터를 세부적으로 나눠서 해석하게되고 랜더링작업을 마친 후 화면을 띄워주게 된다. 다음 밑 그림을 참고하도록하자. 사파리 브라우저에서 처리되는 webkit렌더링엔진의 처리과정출처 https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/ 이런식으로 HTML, CSS..
HTTP는 팀 버너스리와 그의 팀이 발명하였으모 Hypertext Transfer Protocol의 약자이다. HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜이다. HTTP는 서버/클라이언트 모델이며, 장점과 단점은 다음과 같다. 장점 - 불특정 다수를 대상으로 하는 서비스에는 적합하다. - 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다. 단점 - 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다. - 이러한 특징을 무상태(Stateless)라고 말한다. - 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다. 또 HTTP를 공부하면 URL..
https://www.edwith.org/boostcourse-android/lecture/20421/ [LECTURE] 2) 쉐이프 드로어블 : edwith 들어가기 전에 쉐이프 드로어블을 사용하면 XML을 이용해 도형을 그릴 수 있습니다. 도형을 그리려면 원래 소스 코드에서 캔버스(Canvas)라는 객체를 이용해야 하지만 쉐이프 드로... - 부스트코스 www.edwith.org
유튜브 썸네일을 URL을 통해서 가져오기 위해서 유튜브API를 사용하는 YouTubeThumbnailView를 사용하는 방법, 또는 https://m.blog.naver.com/PostView.nhn?blogId=lys1900&logNo=221180556459&proxyReferer=https%3A%2F%2Fwww.google.com%2F [ Android ] 비디오에서 썸네일 추출 [ Android ] 비디오에서 썸네일 추출 ThumbnailUtils 를 사용해서도 추출 가능하다.https://developer.a... blog.naver.com 와 같이 비트맵으로 변환시켜하는 방법 등이 있다. 그러나 난 유튜브 API를 사용하기에는 배보다 배꼽이 더 큰 상황이였고 비트맵으로 변환하는건 왜그런지는 모르..
안드로이드 외부 라이브러리중 사진을 쉽게 확대 및 축소해서 드래그도 할 수 있게 해주는 것이 있다. 이 라이브러리의 사용법에 대해 포스팅할려고한다. 먼저 https://github.com/chrisbanes/PhotoView chrisbanes/PhotoView Implementation of ImageView for Android that supports zooming, by various touch gestures. - chrisbanes/PhotoView github.com 이 분이 만든 라이브러리고 해당 사이트에 사용법과 라이브러리를 구현해놓았다. 라이브러리를 사용하기 위해서는 1. gradle project에 maven url을 다음과 같이 추가해줘야한다. allprojects { reposit..
티스토리블로그를 하면서 임시저장버튼을 한번씩 눌러보거나 시간이 지나면 자동저장이 되는것을 해본적이 있을 것이다. 오늘은 티스토리 블로그에서 새로나온 에디터에서 임시저장한 글을 불러오는 방법을 포스팅 할려고한다. 먼저 티스토리 글쓰기 화면은 기본적으로 이렇게 되있을 것이다. 여기서 임시저장 버튼안에 빨간색 숫자 1을 클릭하면 임시저장한글을 다음과 같이 불러올 수 있다. 공감과 댓글은 큰 힘이됩니다. !
리사이클러뷰는(Recycler View) 리스트뷰처럼(ListView) 여러개의 아이템을 화면에 보여줄 수 있다. 똑같이 화면에 여러개의 아이템을 리스트로 뿌려주는건데 왜 리사이클러뷰를 사용하는 것이고 실제로 실무에서 더 많이 쓰이는 이유는 무엇일까? 그것을 다음과 같이 정리해봤다. [리사이클러뷰의 장점] 1. 리스트뷰와 다르게 상하 스크롤 뿐만 아니라 좌우 스크롤도 가능하게 할 수 있다 2. 각의 아이템이 화면에 보여지는 과정에서 화면에 보이는 과정에서 메모리를 절약할 수 있게 구조가 되어있다. 레이아웃 매니저(Layout Manager)와 뷰홀더패턴(View Holder Pattern)을 의무화했다. (리스트뷰도 뷰홀더를 이용해 캐시 매커니즘을 사용할 수는 있지만 리사이클러뷰는 이를 의무화함) 3. ..
매번 해도 기억이 가물가물한 리스트뷰 기본 사용법을 기록해논다. 아이템-어뎁터-뷰 기억하자. 어댑터 package com.example.a82107.mylistview_adapter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView;..
해당 클래스의 getActiveNetworkInfo()가 deprecated된 부분이 있어 2020.03.13 기준으로 추가로 업데이트 했습니다. (가장 마지막 참고해주세요) 안드로이드에서 인터넷이 연결되어 있는지 확인해야할 때가 있다. 예를들어 인터넷 연결이 되있어야하는 서비스인 경우 인터넷이 안되면 안된다고 알림메세지를 띄워준다거나 사용자에게 알려줘야 한다. 그리고 웹서버에서 데이터를 가져와서 일부 화면에 띄워주는 앱이 있다고하면 인터넷 연결이 안되는 경우는 인터넷이 필요없는 화면이나 기능은 동작하도록 할 수 있거나 메세지로 인터넷 연결이 안되었다고 알려줄 수 있을 것이다. 이렇게 인터넷 연결 유무에 따라 처리를 하기위해서는 인터넷이 연결되어 있는 상태인지 확인하는 기능이 필요하다. 우리는 안드로이드..
먼저 개념부터 간단히 살펴보면 SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다 SQLiteOpenHelper는 데이터베이스 생성 및 버전 관리를 관리하는 도우미 클래스입니다. 먼저 들어가기 앞서, 데이터베이스는 다음과 같은 순서로 생성되고 사용된다는 것을 꼭 기억해야한다. ///데이터베이스 4단계 //1. 데이터베이스만들기(오픈하기) //2. 테이블 만들기 //3. 레코드(데이터) 추가하기 //4. 데이터 조회화기(조회를 이용해서 데이터를 꺼내와 리스트뷰에 보여준다는 등 활용도 할 수 있을거다. 안드로이드 개발할때 가볍고 쉽게 쓰기위한 데이터베이스가 있는데 SQLiteDatabase와 이것을 ..
Github에 잘 못 올라간 특정 폴더 삭제하는법 만약 삭제할려는 폴더의 이름이 removedDir 라하고 삭제 방법을 적어봤다. 1. git bash를 킨다. 2. 해당 리포(repo)를 clone 한다. 3. git rm -r --cached removedDir 4. git commit -m "해당 디렉토리를 삭제했습니다" 5. git push origin master(master나 사용중인 브랜치명)
참고 : https://www.youtube.com/watch?v=49N59HnCAxQ 안드로이드의 액티비티 생명주기에 대해 간단하게 정리해보겠다. 먼저 파란배경의 launched는 아이콘을 눌러 액티비티가 나오게되는 시점이다. OnCreate()는 생성자랑 비슷하다고 생각하면된다. 처음에 액티비티가 생성되었을 때 나온다. OnStart()는 말그대로 액티비티가 시작되기 직전이라 생각하면된다. OnCreate()와 OnResume() 사이의 순서에 있다. OnResume()은 OnStart와 비슷한데 이제 액티비티가 뜨고 동작하기 완전 직전에 실행 된다. OnStart보다 액티비티가 실행되기 더 직전에 가깝다. (onPause에서 sharedpreferences에 임시저장된 데이터를 불러오는데 주로 사용..
ArrayList나 사용자가 만든 객체를 액티비티끼로 서로 전달하고 받는 과정을 예제로 기록해본다.기본타입이 아닌 리스트 또는 객체를 받아올때 단순 get000Extra로 받아올 수 가 없다. *메인액티비티( ArrayList 값과 SimpleData라는 내가 만든 객체를 전달해준다. intent.putExtra로 기본타입과 보내는 방식은 똑같으나 받는 방식이 나중에 보면 다르다. )Intent intent = new Intent(getApplicationContext(), MenuActivity.class); ArrayList names = new ArrayList(); names.add("김진수"); names.add("황수연"); intent.putExtra("names", names); Simpl..
안드로이드 프로그래밍을 하다가 모든 R이 빨갛게 에러가 날 때가 있다. 원래 잘됬다가 갑자기 R이 다 빨게지면서 에러표시가 뜨는걸 처음 본 경우 당황 할 수 가 있다. ( 나도 처음에 JDK경로 잘못했나 싶었다. 바꾼적도없는데) 그럴때는 xml을 한번 보길 바란다. xml에서 실수를 하거나 잘못 쓴 경우 R에러가 뜨는 경우가 있다. xml 레이아웃을 열어 에러표시가 있나 확인하고 수정해주자. 그 후 안드로이드 스튜디오 툴바에서 Bulid -> Rebulid를 해주면 에러표시가 사라질 것이다. 만약 이경우가 아니라면, 상단탭 Build에서 Clean Project 후 Rebuild Project를 해보던가, File탭 Project Structure에서 JDK, SDK경로가 잘되있는지 확인해보도록 하자. ..
액티비티와 프래그먼트끼리 데이터를 전달해주기 위해 Bundle을 찾아보던 도중 딱 맞는 예제가 있어 기록해논다.밑의 사이트에서 예제를 볼 수 있다.참고 : https://stackoverflow.com/questions/7149802/how-to-transfer-some-data-to-another-fragment 난 위의 예제를 참고해 다음과 같이 Bundle을 사용해 액티비티에서 프래그먼트에 데이터를 전달해줬다. * 액티비티쪽에서 전달할 데이터 저장//프래그먼트(영화리스트) movies = new MoviesFragment(); Bundle bundle = new Bundle(); bundle.putString("title", movieInfo.title); bundle.putFloat("reserv..