일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- 배포
- RDS
- model1
- 알고리즘
- tiles.xml
- JSP
- autowired
- Servlet
- HTML
- SQL
- 도커
- docker
- EC2
- 블록체인
- node.js
- CSS
- AWS
- express
- 암호화
- 비트코인
- 웹게임
- Spring
- 웹소켓
- jQuery
- PL/SQL
- websocket
- Ajax
- phaser
- Cookie
- Today
- Total
목록전체 (390)
記錄
로그인, 회원가입, 회원정보 변경과 같은 일반적인 회원정보관리 사항을 구현해보는 강의였다 실습은 위에서 했던 것을 안하고 내가 설계한(더 간단하게) 것을 바탕으로 하였다 Home.jspInsert title here 회원가입 회원정보 변경 로그인 로그아웃 Hello~ Welcome to my homepage! login.jspInsert title here 아 이 디: 비밀번호: 회원가입 registration.jspInsert title here 회원가입(모두 입력해주시기 바랍니다) 아 이 디: 비밀번호: 휴 대 폰: 지 역: 서울 부산 울산 광주 대구 register.javaimport java.io.IOException;import java.io.PrintWriter; import javax.ser..
계속 운동은 해왔는데 일지를 안썼다 식단은 똥망이었는데 일주일 전? 정도부터 정상적으로 먹고 있다 운동량은 좀 많다. 일주일에 세 번정도 헬스장을 가왔고 지금도 가고 있다 치닝디핑도 새로 샀다. 벨트도 그린에서 두 단계 올려서 블랙으로 바꿨다 오늘은 간만에 오전 운동을 다녀왔는데 기분이 좋다 앞으로 바빠서 오전 운동은 못가겠지만 새벽 운동이 가능할 수도 있겠다는 생각이 든다
진동울리기 과정1) AndroidManifest.xml에서 퍼미션을 설정한다2) .xml로 activity 작성3) .java로 이벤트 처리 AndroidManifest.xml에서 퍼미션 처리 // 여기 이렇게 단 한 줄이면 해당 어플이 진동에 대한 퍼미션을 획득 .xml로 Activity 작성(특별할 것이 하나도 없다) .javapublic class MainActivity extends AppCompatActivity implements View.OnClickListener { // 클릭시 이벤트 처리를 위해서 // implements View.OnClickLister했고 // 이에 따라 abstract method인 // onClick을 구현해주어야 컴파일 가능 Button vbbt; Button ..
TableLayout뷰를 테이블 구조로 배치하는 레이아웃. TableRow로 행을 관리한다. 예제 GridLayoutTableLayout과 비슷하지만 TableRow를 굳이 만들어주지 않아도 된다. 또 LinearLayout처럼 가로나 세로 방향으로 나열되지만 GridLayout은 columnCount를 통해서 자동 개행 기능을 사용할 수 있다. 단, orientation이 vertical인 경우에는 rowCount로 자동 개행을 제어한다. 또 rowSpan과 columnSpan을 통해서 원하는 공간을 비울 수도 있다. // 2개의 버튼이 나오면 자동으로 개행하게 만든다 자동으로 정해진 버튼 수를 채우면 개행이 된 모습 계산기 실습
FrameLayoutFrameLayout은 레이아웃에 포함된 뷰들을 같은 영역에 배치할 때 사용. Tab 구조에서 특히 잘 사용된다. Tab화면 구현(TapHost)TabHost: 탭 전체 영역TabWidget: 탭 버튼이 들어갈 영역FrameLayout: 탭 버튼 클릭시 나올 화면 영역 .xml // TabWidget이 끝난 것에 주목하자. LinearLayout의 두 구성요소인 TabWidget과 FrameLayout은 // 동등한 관계이므로 중첩을 시키지 않는다.// 후에 .java에서 spec에 의해 TabWidget과 FrameLayout은 묶이게 된다. .Javapackage com.kimjungkwon.tabhosttestnew; import android.support.v4.content...
RelativeLayoutRelativeLayout은 화면에 이미 배치된 뷰를 기준으로 다른 뷰의 위치를 지정하는 레이아웃이다. layout_above, layout_below, layout_toLeftOf, layout_toRightOf 이렇게 네 개로 상대적 위치를 지정한다. 상대적 위치를 지정하는 레이아웃인 만큼 먼저 기준이 될 뷰를 인식해야 하므로 id 부여는 필수이다. align상대적인 위치를 설정하고 나서 화면을 깔끔하게 하기 위해서는 정렬을 해야한다. 즉, 왼쪽 변을 맞추든 윗 변을 맞추든 선을 맞춤으로써 UI가 더 깔끔해 질 수 있고 이는 align을 이용한다 alignParentXXX부모 뷰의 면적에서 원하는 위치에 배치하는 기능을 한다 RelativeLayout 실습 // 부모 뷰의 면..
LinearLayout레이아웃에 포함된 뷰를 가로나 세로로 나열하는 레이아웃이고 이는 orientation으로 제어한다. layout_gravity vs gravity vs LinearLayout의 gravityLinearLayout내에서 뷰의 위치를 변경하고 싶으면 뷰 내에서 layout_gravity 속성을 활용하고 뷰 내에서 컨텐츠(내용)의 위치를 변경하고 싶으면 마찬가지로 뷰 내에서 gravity를 사용한다. 단, orientation의 설정에 따라서 뷰에서의 layout_gravity는 적용이 안되는 경우가 발생한다. 예를 들어 orientation에서 horizontal설정이 되어 있다면 뷰 내에서의 layout_gravity에서 center_horizontal을 설정해도 적용이 되지 않는다...
실습1) 텍스트 내에서 autoLink 기능 사용2) strings.xml에서 긴 텍스트 호출하여 원하는 줄 수만큼 출력 후 길면 요약3) 폰트 변경4) 이미지 뷰 출력 후 가로세로 비율 맞추도록 설정5) EditText 뷰 출력하여 다이얼 패드로 전화번호 입력받기6) 체크박스 출력 후 터치 시 이벤트 처리하여 텍스트 변경 .xml // autoLink로 클릭시 바로 이동할 수 있도록 처리 // 끝에 ... 으로 줄여지도록 함 // 짧으니까 stirngs.xml말고 직접 여기에 씀 Strings.xml UITestFinal 미래 핵심 기술로 꼽히는 거래 내역 분산 저장, 즉 블록체인 방식도 이미 공개된 기술이라 6천만 원이면 새 이름의 가상화폐를 만들 수 있는데도 수천억 원 규모로 거래된다는 겁니다. 실..
화면에 버튼 두 개 생성(자바코드로 UI구성)public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linear = new LinearLayout(this); Button bt1 = new Button(this); bt1.setText("Button 1"); linear.addView(bt1); Button bt2 = new Button(this); bt2.setText("Button 2"); linear.addView(bt2); setContentView(linea..
- 파편화 vs 개방성운영체제의 소스 코드, 라이브러리 코드 등이 모두 공개되어 있으므로 이를 사용해 각 스마트폰 제조사들이 조금씩 변경을 하기 때문에 파편화가 이뤄지는 단점이 있다. 그만큼 개방되어 있다는 것이기도 하다. - iOS와 다른점iOS는 특정 9개 앱의 기능을 운영체제가 책임져 주는 것이지 실제로 둘 이상의 앱이 동시에 돌아가지는 않는다. 이런 의미에서 안드로이드는 멀티태스킹을 지원하고 iOS는 그렇지 않다고 할 수 있다. - ART(Android Runtime)일반적으로 .java는 java파일을 .class파일로 컴파일하고 이를 JVM에서 돌렸었다. 안드로이드는 .java를 .class로 컴파일 하는 것은 동일하지만 .class를 다시 .dex 파일로 컴파일 한 후 이를 ART상에서 돌린..
public class Rotator : MonoBehaviour { // Update is called once per frame void Update () { transform.Rotate(new Vector3(15, 30, 45) * Time.deltaTime); }} Transform DescriptionPosition, rotation and scale of an object. Every object in a scene has a Transform. It's used to store and manipulate the position, rotation and scale of the object. Every Transform can have a parent, which allows you to ap..
Rigidbody DescriptionControl of an object's position through physics simulation. 물리 시뮬레이션을 통해서 object의 위치를 제어하는 컴포넌트. Adding a Rigidbody component to an object will put its motion under the control of Unity's physics engine. Even without adding any code, a Rigidbody object will be pulled downward by gravity and will react to collisions with incoming objects if the right Collider component is als..
출처 : https://www.youtube.com/watch?v=0T_QerEEjNA 구조체 접근하여 값 변경하기(구조체명으로 접근, 구조체 포인터 변수로 접근) 실습 #include #include struct Books { char Name[64]; char Author[32]; int Price; }; int main(void){ // 선언 후 출력 struct Books book_1 = {"Harry Potter", "JK", 20000}; printf("Title : %s Author : %s Price : %d\n", book_1.Name, book_1.Author, book_1.Price); // 값 접근하여 변경 - 구조체 명으로 직접 접근하여 값 변경 book_1.Price = 5000..
출처 : https://www.youtube.com/watch?v=_Cn2TXFf2Cg typedef로 간단히 정의를 해뒀어도 struct로 선언이 가능하다 보기 좋으라고 두 줄로 된 것이지 실제로 메모리상에는 모두 일렬로 공간이 할당된다 구조체 선언 방식 두 가지 실습 #include #include struct Books1 { char Name[64]; char Author[32]; int Price; }; typedef struct Books2 { char Name[64]; char Author[32]; int Price; } Books2; int main(void){ struct Books1 book_1 = {"Harry Potter", "JK", 20000}; Books2 book_2 = {"T..
출처 : https://www.youtube.com/channel/UCn1NX3h4lYS8wgsytxNyGiA/videos 배열은 같은 데이터 타입을 보관하기 위한 개념이라면구조체는 다른 데이터 타입들을 묶어 관리하기 위한 개념이다
출처: https://www.youtube.com/watch?v=QZWFH98hzpc 변수 이름이 같다고 해도 다른 주소값을 쓰기 때문에 변수명 만으로는다른 함수의 값을 다른 함수가 변경할 수는 없다는 것을 보여준다 변수 선언시 컴퓨터는 심볼테이블을 가지고 있어서변수에 접근할 때 테이블을 참조하여 주소값으로 접근 - 포인터 변수에도 자료형이 필요한 이유는 해당 포인터 주소로 가서 '이 주소를 따라갔을 때 몇 바이트를 읽어들일지'를 컴퓨터가 알 수 있도록 하기 위해서다. ex) int_ptr은 int형 포인터 변수이므로 컴퓨터는 int_ptr이 가리키는 주소값으로 '4바이트를 읽어야겠다'고 작정(?)하고 가서 4바이트를 읽어온다. 마찬가지로 char_ptr은 1바이트, short_ptr은 2바이트를 읽는다..
출처 : https://www.youtube.com/watch?v=CYVqs_HTgLM 수업 복습용 포스팅 보조기억장치 : 일반적은 하드디스크. 주 기억장치 : RAM을 의미. 현재 실행중인 프로그램이 올라간다. 캐시 메모리 : 레지스터와 주 기억장치의 속도차를 보완하기 위해 존재하는 메모리. 자주 사용하는 프로그램이나 자료와 같은 것이 올라가있고 레지스터가 이것이 필요할 때 주 기억장치로 가지 않고 캐시메모리에서 바로 끌어올 수 있도록 한다. 레지스터 : CPU
이 포스팅은 제가 만든 것이 아니고 유투브의 강의를 듣고 복습을 위해 정리한 것입니다. 유투브 강의의 출처는 맨 아래에 밝혀둡니다. 이전까지 한 것 복습(전역변수와 지역변수 섞인 예제) 여기서 쓰레기값을 버리는 행위를 '패딩'이라고 한다. 패딩을 하게 되면 메모리 효율은 떨어지지만 연산 속도가 빨라진다. 출처 : https://www.youtube.com/watch?v=ivFdOVxP80o
이 포스팅은 제가 만든 것이 아니고 유투브의 강의를 듣고 복습을 위해 정리한 것입니다. 유투브 강의의 출처는 맨 아래에 밝혀둡니다. int sum = 0으로 전역변수 sum이 초기화와 선언이 동시에 되면서 Stack Segment가 아닌 Data Segment 에 sum으로 공간 할당이 이뤄지고 값이 0으로 들어간 것을 유념한다!! 여기서 나는 전역변수와 지역변수가 메모리에 저장되는 공간과 시기가 다르다는 것을 확인할 수 있다. 지역변수와 함수 parameter는 런타임시에 메모리에 push되고 함수의 종료와 함께 pop되어버리는 것에 반해 Data Segment에 push되는 전역변수는 컴파일 시에 push되어 계속 메모리에 상주하면서 값이 갱신되는 것이다. 코딩할 때에 이미 이러한 내부 작용을 이해한..
cf. 지금부터 연속적으로 올리는 메모리 구조에 관한 포스팅은 제가 만든 수업자료가 아님을 밝힙니다. 유투브에 올라온 강의를 듣고 수업 복습용으로 남기는 포스팅이며 유투브 강의 출처는 맨 밑에 밝혀둡니다. Code Segment - C언어 등 인간이 이해할 수 있는 프로그램 언어가 컴퓨터가 이해할 수 있는 코드로 번역되어 저장되는 곳Data Segment - 전역변수, static변수, 문자열이 들어가는 공간 프로그램이 실행되기 전인 컴파일시에 적재된다Heap - 동적 할당 영역. 프로그램이 실행된 중간에 필요에 의해 메모리에 적재했다가 없앴다가 할 필요성이 있는데 이 때에 사용되는 공간이다. 추후 이것은 강의를 보고 따로 포스팅Stack Segment - 지역 변수, 함수 parameter가 적재되는 ..
홈트 꾸준히 하다가 TLX로 다시 갈아탔다. 고중량을 하니 역시 스트레스도 풀리고 살 것 같다. 가슴도 조금 붙은 것 같다. 확실히 좀 옛날 사진과 비교해보면 몸이 커진 것 같다. 특히 등운동에 재미를 붙인 것이 크다. 마음에 든다. 여전히 식단 컨트롤은 부실하다. 노력하도록 한다.
CodeBlocks(코드블록) 테마 변경
Builder Pattern(빌더패턴) 복잡한 것을 만들 때는 전체를 한꺼번에 만들기보다는 작게 분리하여 만든 후 다시 합치는 것이 편리하다. builder 패턴은 복잡한 인스턴스를 조립하여 만드는 구조로, 복합 객체를 생성할 때 객체를 생성하는 방법(과정)과 객체를 구현(표현)하는 방법을 분리한다. 따라서 이 패턴은 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있다. Robotpackage BuilderPattern; public class Robot { String Head; String Body; String Leg; public Robot(String head, String body, String leg) { Head = head; Body = body; Leg = leg; } publi..
홈트는 꾸준히 하는데 너무 잘 먹고 있다. 많이 먹고 잘 먹고 있다. 흠.. 조금 조절할 필요가 있다. 그리고 도서관을 서초로 다니면서 TLX 계획에 조금 차질이 발생했다. 면접결과를 떠나서 7회분은 결제를 해서 여의도나 서초로 헬스를 다니는 것도 나쁘지 않다. 실행에 빨리 옮겨야겠다. 지금으로서는 애플짐 반포점이 유력하다. 위치상 딱이다. 2순위가 여의도.
JDBC 요약 자바 프로그램 안에서 SQL을 실행하기 위해 데이터베이스를 연결해주는 응용프로그램 인터페이스를 말한다.자바 프로그램 내에서 데이터베이스 질의문 즉, SQL을 실행하기 위한 자바 API(application programming interface)이다. Java database connectivity의 약자로 생각하기도 하지만 실제로는 상표 이름이다. JDBC는 데이터베이스 및 애플리케이션 개발자들을 위한 표준 API를 제공하고 순수 자바 API만으로도 데이터베이스 응용업무를 만들게 해준다. JDBC를 사용하면, 어떠한 관계 데이터베이스(relational database)에서도 SQL문을 사용하기 쉽다. 즉, JDBC API를 사용하면 DB2, Sybase, Oracle, Informix,..
복습사항 1. 사용자 만들기2. 만든 사용자에 connect, resource 허가3. 만든 아이디로 접속하기4. 테이블 만들기 -> member 테이블이며 속성들은 id, pw, name, phone5. 아이디에서 모든 테이블 조회6. insert7. delete8. update9. drop10. select /*1. 사용자 만들기2. 만든 사용자에 connect, resource 허가3. 만든 아이디로 접속하기4. 테이블 만들기 -> member 테이블이며 속성들은 id, pw, name, phone5. 아이디에서 모든 테이블 조회6. insert7. delete8. update9. drop10. select*/ /* 1. 사용자 만들기 + 2. connect와 resource 허가*/ create ..
얕은 복사와 깊은 복사의 차이를 알아보자 얕은 복사로 인해 주소값이 공유 되고 결과적으로 수정을 원하지 않는 객체까지 수정이 되어버림 주소값이 같은 것을 확인 할 수 있다 깊은 복사로 제대로된 결과가 출력됨 package Prototype; public class Cat implements Cloneable { private String name; private int age; public Cat(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public in..