Servlet은 줄임말이고 정확한 네이밍은 Server application let이다 즉 서버에서 기능을 수행하는 어플이라고 이해하면 될 것같다. 간단히 설명하면 클라이언트 즉 사용자가 사용하는 html or 기타등등 의 화면의 출력기능이 있을텐데 이곳에서 서버를 호출해서 특정기능을 수행하고 싶을때 servlet을 사용하게 된다. 즉 간단히 설명하면 사용자(클라이언트) -> (서버에 데이터 전송)->(서버에서 데이터를 연산* 이 부분이 servlet이라고 이해하면 될 것 같다.)->연산한 부분을 사용자에게 전송 이라고 생각하면 될 것 같다. 간단히 이론적으로만 알아두고 나중에 천천히 직접 프로그래밍을 하면서 이해하면 조금 더 이해가 빠를 것 같다. Servlet을 활용한 계산기를 곧 올리겠습니다.
웹을 제작하는 과정에서 정규식은 매우 유용하게 쓰인다. 길이를 포함해 양식을 지키도록 강제할 수 있고,특정 문자열같은 경우 필터링도 가능하게 할 수 있다. 대표적인 코드로 회원가입 사이트를 만들면서 영어와 숫자만 사용해서 아이디를 입력하도록 설정하는 기능인데. 일반적으로 이런 구조를 띄우고 있다. 일단 / /를 양옆에 씌워 (우리가 문자열을 만들때 " " or ' ' 를 사용하는 것 처럼)정규식의 기본틀을 만들어주고 ^표시를 통해 정규식의 시작을 알린다. $는 마찬가지로 정규식의 끝을 뜻함 즉 /^a$/와 같은 정규식이 있다면 문자열이 a로 시작하거나 a로 끝나는 문자열이라는 뜻이다. ex) 'a'pple,'a'ndroid or bet'a' coc'a' 그리고 {int,int} 같은 경우에는 문자열의 길..
interface를 짧게 정의하면 기능을 오버라이딩을 통해 편리하게 사용 할 수 있는 기능이다. 상속관계만 이용한다면 클래스를 추가할때마다 일일히 기능을 추가해줘서 불편함이 클텐데 interface를 이용하면 오버라이딩을 통해 메소드를 줄일 수 있다. 다음은 인터페이스의 활용을 그림으로 나타낸것인데. 일반적으로 오버라이딩은 상위클래스와 하위클래스만 가능하다. 그렇기에 불편을감수하더라도 오버라이딩을 하기위해 상속을 사용하는 것인데, 인터페이스를 활용하면 다음과 같이 인터페이스를 implements 함수를 사용해 클래스들이 interface를 포함하게 되면, 강제적으로 인터페이스 안에 있는 메소드를 사용해야한다. 이클립스에서는 오버라이드를 안해주면 오류가나니, 이 기능이 필요해서 인터페이스를 포함시키면 강제..
상속클래스는 다음과 같이 상속받은 자식을 또 상속할 수 있다. 상속관계가 내려오면서 조금더 세분화 된다고 생각하면 될것같다.(동물)>(개)>(내가 키우는 개) 이런식으로 세분화 시켜서 조금더 구체적인 기능을 넣을 수 있다. 또 다른 특징으로는 자식객체는 두개의 부모를 가질 수 없다. 이는 개념적으로도 부모가 둘 일수는 없기 때문에 이런 관계는 성립되지 않는다즉. 자식클래스는 복수의 부모클래스를 가질 수 없다. 라고 이해하면된다. *클래스 내부는 볼 필요 없습니다(복붙해서)하지만 다음과 같이 한 부모는 여러개의 자식 클래스를 가질 수 있다. 이 또한 개념적으로 한 부모가 여러 자식들을 가질 수 있기때문이라고 이해하면 될것같다. 즉 상속의 특징을 간단하게 요약하면 1.자식클래스는 여러개의 부모클래스를 상속받..
자바에서 is-a 관계를 가지고 있는 클래스들을 상속관계라고 말한다. 다음 과 같은 구조를 가진 클래스를 만든다고 할때 Animal 클래스에서 문자열 name과 setName메소드가 선언이 되었는데, 밑에 Dog클래스는 문자열과 메소드를 선언하지 않았음에도 사용이 가능하다. 빨간색 박스를 보면 알겠지만 Dog타입의 새로운 Dog생성자를 만들었을뿐 Animal 클래스의 생성자를 만든게 아니다. 그럼에도 setName과 name을 여전히 사용할 수 있다. 이렇듯 상속관계는 이미선언되어있는 메소드를 굳이 다시 선언할필요없이 자식이 자유롭게 사용할 수 있는 구조이다. 이렇듯 편리한 기능이지만 상관관계를 생각해서 만들지 않으면 의미가 없다, 부모객체는 자식객체의 특성을 가지고 있지만 조금 더 넓은 개념(ex) 동..
HTML에서 경로는 크게 두 가지가 있다. 절대경로 와 상대경로 절대경로는 말그대로 변하지 않는 절대적인 경로이다. 내가 html에서 절대경로를 정해두면 다른 사람이 사용할때도 절대경로를 통해서 접속되기 때문에 따로 작업을 하지 않아도 바로 사용이 가능하다. html을 사용하면서 가장 사용이 빈번한 경로는 http:// 로 시작하는 주소값일텐데 이 경로는 절대적이기 때문에 어느누가 html 파일을 받아서 사용해도 무리없이 사용할 수 있다. 또는 c드라이브 혹은 d드라이브에서 부터 시작된든 경로값은 자기자신한테는 절대적인 경로이긴하다. 자신의 컴퓨터내에서는 어떤 작업도 필요없이 html파일을 옮기든 말든 사용할 수 있다. 상대경로는 이와는 반대로 내 html폴더가 있는 곳을 기준으로 정하게 된다. 만약 내..
inner class 란 클래스 안에 또 다른 클래스가 있는 형태를 말한다. is a 상속관계를 생각해보면 또 다른 클래스를 참조하는 형태이지만 inner class는 말그대로 클래스안에 존재한다 이런 식으로 클래스 안에 또 다른 클래스가 존재하는 형태이다 그리고 접근지정자를 private로 두면 일반 상속관계에서는 참조할수없지만 inner class를 통하면 접근지정자에 관계없이 사용이 가능하다. 구조는 아래와 같다. public class out{ private int a;//private를 붙여서 일반적으로는 클래스간 참조가 안된다. private int b;// "" public out(){ a=10; b=20; }//생성자를 통해 a와 b값을 초기화 class inner{ public void ..
클래스의 간의 관계에는 크게 두 가지가 있다. IS-A Relationship 쉽게 말하면 상속관계이다. 부모클래스와 자식클래스를 구별할때 IS-A 관계를 생각하곤 하는데 예를들면 사과는 과일이다.컴퓨터는 전자기기이다. 등 의 관계를 생각해보자 어떤 걸 부모클래스로 둬야할지 감이 오지 않는다면, 이렇게 생각해보자 사과는 과일이다는 틀리지 않지만, 과일은 사과이다? 이건 명백하게 틀린말이다. HAS-A Relationship IS-A가 카테고리를 구별하기 위해 만든다면, HAS-A 는 특정기능을 사용하고 싶을때 자주 사용한다. 차로 예를 들자면 차는 엔진을 가지고 있다. 즉 기능을 포함시키고 싶을때 사용 하는 것이 HAS-A 이다. IS-A와 HAS-A의 관계를 이해한다면 사실 다 이해했다고 봐도 무방하다..
다차원 배열을 사용하게 되면서 구조가 복잡해져서, 머리에서 바로 이 프로그램을 떠올리는 속도가 늦었다. 내가 사용한방법은 필요한 값들의 가장 큰 값을 생각하고 이를 그림으로 순차적으로 표현해서 그림을 참고하며 프로그램을 작성했다. 프로그램의 큰 틀을 일단 글로 작성했다. 1.반의 갯수 2.반 인원수 3.반 인원수에 맞춰 국영수 점수 입력(국영수 점수를 바탕으로 총점과 평균을 계산) 4.일괄 출력 import java.util.Scanner; public class Calculator { public static void main(String[] args) { int clasnum; String[][]name=null; int[][][]score=null; Scanner sc= new Scanner(Sys..
- Total
- Today
- Yesterday
- prometheus
- UserService
- JWT
- elasticSearch
- MSA
- springcloud
- 운동
- LoadBalancer
- Kafka Connect
- Spring + ELK
- 루틴기록
- github
- Feign
- 오늘저녁 삼겹살
- 미래의나에게동기부여
- Gateway
- rabbitmq
- ACTUATOR
- producer
- consumer
- Logstash 활용
- docker
- config
- 빅-오
- Logstash to ElasticSearch
- zipkin
- git
- kafka
- MariaDB
- 운동일기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |